${(function(){ const get_random_six_digits = () => { return Math.random().toString().slice(-6) }; const wholesale_enabled = false; const setting_product_image_display = "100%"; const product_image = data.image; const secondary_image = data.secondImage; const image_width = product_image.width; let image_height = product_image.height; if(setting_product_image_display == '100%'){ image_height = image_width }else if(setting_product_image_display == '133.33%'){ image_height = image_width * 1.3333; }else if(setting_product_image_display == '75%'){ image_height = image_width * 0.75; }; const product_image_hover_on = true && !!secondary_image.src; const has_save_label = true && ((+data.compare_at_price) > (+data.price)); const is_single_variant = data.variants.length == 1; const min_price_variant_href = (data.min_price_variant && data.min_price_variant.available) ? data.min_price_variant.withinUrl : data.withinUrl; const retail_price_max = data.retail_price_max || data.compare_at_price_max; const THUMBNAILS_MAX_SIZE = 3; const thumbnails = data.thumbVariants.slice(0, THUMBNAILS_MAX_SIZE); const image_wrap_id = 'image_wrap_' + get_random_six_digits(); const image_carousel_id = 'image_carousel_' + get_random_six_digits(); const thumbnails_selector_id = 'thumbnails_selector_' + get_random_six_digits(); const form_id = 'form_' + get_random_six_digits(); const mixed_wholesale = data.mixed_wholesale; return `
${ data.available ? `${ (+data.compare_at_price > +data.price) ? `Save ${ data.off_ratio }% ` : '' }` : "Sold out" }
Mixed Lot
${data.title}
${ data.price_min != data.price_max ? `from
` : `
` }
+${data.remainInvisibleThumbCount}
` })()}
TODAY ONLY -70% OFF Everything Step Into Irresistible Savings Online Only
TODAY ONLY -70% OFF Everything Step Into Irresistible Savings Online Only
Log in
Create an account
${data.data && data.data.count}
Home
Designer Haul
BALENCIAGA
Chanel
Coach
Diesel
Dior
Fendi
Gucci
Goyard
Hermès
Jacquemus
Loewe
Louis Vuitton
Miu Miu
Prada
Saint Laurent
M44840 Multi-Pochette Accessoires
$16.99
Designer Glasses
Designer ACC
BOUCHERON
BULGARI
Cartier
CHAUMET
Dior
Gucci
Hermès
VAN CLEEF & ARPELS
Tiffany & Co.
Return to TF/ Heart Tag Toggle Necklace in Silver
$10.99
Sports
Alo
Asics
BIRKENSTOCK
Hoka
New Balance
Nike
Onitsuka
On Running
PUMA
Skechers
UGG
Fashion
7 For All Mankind
Revice
Ralph Lauren
Free Pelple
Moncler
Fendi
Home Fragrances
More links
${(function(){ var linkList =[false,true,false,true,true,true,false].slice(offset); var hasChild = linkList.some(v => v); if(!hasChild){ return `
Home
Designer Haul
Designer Glasses
Designer ACC
Sports
Fashion
Home Fragrances
` } return `
Home
Designer Haul
Designer Glasses
Designer ACC
Sports
Fashion
Home Fragrances
BALENCIAGA
Chanel
Coach
Diesel
Dior
Fendi
Gucci
Goyard
Hermès
Jacquemus
Loewe
Louis Vuitton
Miu Miu
Prada
Saint Laurent
BOUCHERON
BULGARI
Cartier
CHAUMET
Dior
Gucci
Hermès
VAN CLEEF & ARPELS
Tiffany & Co.
Alo
Asics
BIRKENSTOCK
Hoka
New Balance
Nike
Onitsuka
On Running
PUMA
Skechers
UGG
7 For All Mankind
Revice
Ralph Lauren
Free Pelple
Moncler
Fendi
` })()}
Home
Designer Haul
BALENCIAGA
Chanel
Coach
Diesel
Dior
Fendi
Gucci
Goyard
Hermès
Jacquemus
Loewe
Louis Vuitton
Miu Miu
Prada
Saint Laurent
M44840 Multi-Pochette Accessoires
$16.99
Designer Glasses
Designer ACC
BOUCHERON
BULGARI
Cartier
CHAUMET
Dior
Gucci
Hermès
VAN CLEEF & ARPELS
Tiffany & Co.
Return to TF/ Heart Tag Toggle Necklace in Silver
$10.99
Sports
Alo
Asics
BIRKENSTOCK
Hoka
New Balance
Nike
Onitsuka
On Running
PUMA
Skechers
UGG
Fashion
7 For All Mankind
Revice
Ralph Lauren
Free Pelple
Moncler
Fendi
Home Fragrances
More links
${(function(){ var linkList =[false,true,false,true,true,true,false].slice(offset); var hasChild = linkList.some(v => v); if(!hasChild){ return `
Home
Designer Haul
Designer Glasses
Designer ACC
Sports
Fashion
Home Fragrances
` } return `
Home
Designer Haul
Designer Glasses
Designer ACC
Sports
Fashion
Home Fragrances
BALENCIAGA
Chanel
Coach
Diesel
Dior
Fendi
Gucci
Goyard
Hermès
Jacquemus
Loewe
Louis Vuitton
Miu Miu
Prada
Saint Laurent
BOUCHERON
BULGARI
Cartier
CHAUMET
Dior
Gucci
Hermès
VAN CLEEF & ARPELS
Tiffany & Co.
Alo
Asics
BIRKENSTOCK
Hoka
New Balance
Nike
Onitsuka
On Running
PUMA
Skechers
UGG
7 For All Mankind
Revice
Ralph Lauren
Free Pelple
Moncler
Fendi
` })()}
Log in
Create an account
${data.data && data.data.count}
${(function(){ if (data === undefined || typeof data !== 'string' || data == '') return ''; const keyword = encodeURIComponent(data); return `
View more
Your search for '${data}' did not yield any results.
` })()}
Home
Designer Haul
Designer Haul
BALENCIAGA
Chanel
Coach
Diesel
Dior
Fendi
Gucci
Goyard
Hermès
Jacquemus
Loewe
Louis Vuitton
Miu Miu
Prada
Saint Laurent
Designer Glasses
Designer ACC
Designer ACC
BOUCHERON
BULGARI
Cartier
CHAUMET
Dior
Gucci
Hermès
VAN CLEEF & ARPELS
Tiffany & Co.
Sports
Sports
Alo
Asics
BIRKENSTOCK
Hoka
New Balance
Nike
Onitsuka
On Running
PUMA
Skechers
UGG
Fashion
Fashion
7 For All Mankind
Revice
Ralph Lauren
Free Pelple
Moncler
Fendi
Home Fragrances
Log in
Create an account
(function(){ let w = window.innerWidth; function setHeaderCssVar() { const headerEle = document.getElementById('shoplaza-section-header'); if(!headerEle){ return }; document.body.style.setProperty('--window-height', `${window.innerHeight}px`); document.body.style.setProperty('--header-height', `${headerEle.clientHeight}px`); const mdScorllHideEle = headerEle.querySelector('.header__mobile .header__scroll_hide'); if (mdScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-md', `${mdScorllHideEle.clientHeight}px`); } const pcScorllHideEle = headerEle.querySelector('.header__desktop .header__scroll_hide'); if (pcScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-pc', `${pcScorllHideEle.clientHeight}px`); } } function handlResize() { if(w == window.innerWidth){return}; w = window.innerWidth; setHeaderCssVar(); }; function init(){ setHeaderCssVar(); window.removeEventListener('resize', window._theme_header_listener) window._theme_header_listener = handlResize; window.addEventListener('resize', window._theme_header_listener); } init(); })();
1/6
${data.index + 1}/${data.total}
${Array(data.total).fill(0).map((num, index) => `
`).join('')}
New Balance 9060 'Beach Glass' U9060NBN
$21.99
(Tax included)
${function() { const variantData = data.variant || {"id":"ee5158d2-771c-455b-aaec-c58a678cbc0b","product_id":"1423f4ae-5f05-452d-b40a-686b5829c290","title":"MENS-Mens US4 \\ UK3.5 \\ EU36 \\ 22CM","weight_unit":"kg","inventory_quantity":1000,"sku":"U9060NBN-40","barcode":"","position":1,"option1":"MENS","option2":"Mens US4 \\ UK3.5 \\ EU36 \\ 22CM","option3":"","note":"","image":null,"wholesale_price":[{"price":21.99,"min_quantity":1}],"weight":"0","compare_at_price":"180","price":"21.99","retail_price":"180","available":true,"url":"\/products\/new-balance-9060-beach-glass-u9060nbn?variant=ee5158d2-771c-455b-aaec-c58a678cbc0b","available_quantity":999999999,"options":[{"name":"Gender","value":"MENS"},{"name":"Size","value":"Mens US4 \\ UK3.5 \\ EU36 \\ 22CM"}],"off_ratio":"88","flashsale_info":{"variant_id":"ee5158d2-771c-455b-aaec-c58a678cbc0b","product_id":"","quantity":0,"discount_id":"","limit_time":0,"limit_buy":0,"user_limit_buy":0,"discount_sales":0,"discount_sales_rate":"","discount_stock":0,"ends_at":0,"starts_at":0,"allow_oversold":"","allocation_method":"","price":"21.99","compare_at_price":"","discount_price":"21.99","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"88","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":0}; const saveType = "percentage"; const productLabelDiscountOn = true; return `
-
(Tax included)
${saveType == 'percentage' ? `
-${variantData.off_ratio}%
` : `
-
` }
(Tax included)
`; }()}
${function(){ // 获取基础配置数据 const isRTL = originData.isRTL; // 是否从右到左显示 const isMobile = originData.isMobile; // 是否移动端 const inProductDetail = originData.inProductDetail; // 是否在商品详情页 const image_domain = originData.image_domain; // 图片域名 const copyBtnClass = originData.copyBtnClass; // 复制按钮类名 const copyClass = originData.copyClass; // 复制内容类名 // 优惠码列表 const list = originData.discountCodeData.list || []; if (list.length === 0) { return ``; } // 显示模式: 平铺或折叠 const isTiled = originData.discountCodeData.display_type === "DTE_TILE"; // 获取第一个配置作为默认配置 const productSetting = list[0].product_setting; const { template_type, template_config } = productSetting; const { text, tag, banner, coupon } = template_config.color; // 优惠券样式配置 const { coupon_border_color, // 边框颜色 coupon_background_color, // 背景色起始色 coupon_background_color_end, // 背景色结束色 coupon_color, // 文字颜色 coupon_button_background_color_start, // 按钮背景起始色 coupon_button_background_color_end, // 按钮背景结束色 coupon_button_color // 按钮文字颜色 } = coupon; // 颜色透明度转换函数 const colorToRGBA = (color, alpha) => { if (color.startsWith('#')) { const hex = color.slice(1); const r = parseInt(hex.slice(0, 2), 16); const g = parseInt(hex.slice(2, 4), 16); const b = parseInt(hex.slice(4, 6), 16); return `rgba(${r}, ${g}, ${b}, ${alpha})`; } else if (color.includes('rgb')) { const rgb = color.slice(color.indexOf('(') + 1, color.indexOf(')')).split(','); const r = parseInt(rgb[0]); const g = parseInt(rgb[1]); const b = parseInt(rgb[2]); return `rgba(${r}, ${g}, ${b}, ${alpha})`; } else { return color } } // 渲染平铺样式的优惠券列表 const renderTiledList = (list, isFold = false) => { const rate = isRTL ? '34%' : '66%'; // RTL布局时调整分割线位置 let curDom = ` `; // 循环渲染优惠券列表 for(const item of list) { curDom += `
${item.discount_text}
${(isFold || item.product_setting.show_effective_date) && +item.ends_at !== -1 ? `${item.starts_at} - ${item.ends_at}` : ""}
${item.code}
` } return curDom; } let Dom = ``; // 根据显示模式选择渲染方式 if (isTiled || list.length === 1) { // 根据模板类型渲染不同样式 switch(template_type) { // 文本样式 case 'text': { Dom = `
${function(){ let textDom = ''; for(const item of list) { textDom += `
${ item.discount_text }
Code:
${ item.code }
` } return textDom; }()}
`; break; } // 标签样式 case 'tag': { const { text_color, background_color } = tag; Dom = `
${function(){ let textDom = ''; for(const item of list) { textDom += `
${ item.discount_text }
Code:
${ item.code }
`; } return textDom; }()}
` break; } // 横幅样式 case 'banner': { Dom = `
${function(){ let textDom = ''; for(const item of list) { textDom += `
${ item.discount_text }
Code:
${ item.code }
`; } return textDom; }()}
`; break; } // 优惠券样式 case 'coupon': { Dom = `
${renderTiledList(list)}
` break; } } } else { // 折叠模式样式 const foldStyle = ` `; // 只显示前3个优惠券 const showList = list.slice(0, 3); let couponDom = ""; for(const item of showList) { couponDom += `
${item.discount_text}
` } // PC端弹窗 const webModal = `
${function(){ return renderTiledList(list, true); }()}
` // 移动端侧边栏 const mobileModal = `
${function(){ return renderTiledList(list, true); }()}
` couponDom += `
Click to claim
${isMobile ? mobileModal : webModal} `; Dom = ` ${foldStyle}
${couponDom}
` } return `
${Dom}
`; }()}
/** * 优惠码组件模型类 * 处理优惠码的显示和交互逻辑 */ class SpzCustomDiscountCodeModel extends SPZ.BaseElement { constructor(element) { super(element); // 复制按钮和内容的类名 this.copyBtnClass = "discount_code_btn" this.copyClass = "discount_code_value" } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { // 初始化服务 this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); } /** * 渲染优惠码组件 * @param {Object} data - 渲染数据 */ doRender_(data) { return this.templates_ .findAndRenderTemplate(this.element, Object.assign(this.getDefaultData(), data) ) .then((el) => { this.clearDom(); this.element.appendChild(el); // 绑定复制代码功能 this.copyCode(el, data); }); } /** * 获取渲染模板 * @param {Object} data - 渲染数据 */ getRenderTemplate(data) { const renderData = Object.assign(this.getDefaultData(), data); return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { this.clearDom(); return el; }); } /** * 清除DOM内容 */ clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } /** * 获取默认数据 * @returns {Object} 默认数据对象 */ getDefaultData() { return { isMobile: appDiscountUtils.judgeMobile(), isRTL: appDiscountUtils.judgeRTL(), image_domain: this.win.SHOPLAZZA.image_domain, copyBtnClass: this.copyBtnClass, copyClass: this.copyClass } } /** * 复制优惠码功能 * @param {Element} el - 当前元素 */ copyCode(el) { const copyBtnList = el.querySelectorAll(`.${this.copyBtnClass}`); if (copyBtnList.length > 0) { copyBtnList.forEach(item => { item.onclick = async () => { // 确保获取正确的元素和内容 const codeElement = item.querySelector(`.${this.copyClass}`); if (!codeElement) return; // 获取纯文本内容 const textToCopy = codeElement.innerText.trim(); // 尝试使用现代API,如果失败则使用备用方案 try { if (navigator.clipboard && navigator.clipboard.writeText) { await navigator.clipboard.writeText(textToCopy); } else { throw new Error('Clipboard API not available'); } // 显示复制成功提示 this.showCopySuccessToast(textToCopy, el); } catch (err) { console.error('Modern clipboard API failed, trying fallback...', err); // 使用备用复制方案 this.fallbackCopy(textToCopy, el); } const discountId = item.dataset["discountId"]; // 跳转决策: is_redirection + link(可选覆盖) const setting = { is_redirection: item.dataset["redirection"] === "true", link: item.dataset["link"], }; const landingUrl = `/promotions/discount-default/${discountId}`; const finalUrl = appDiscountUtils.resolveDiscountHref(setting, landingUrl); if (finalUrl && appDiscountUtils.inProductBody(this.element)) { this.win.open(finalUrl, '_blank', 'noopener'); } } }) } } /** * 使用 execCommand 的复制方案 * @param {string} codeText - 要复制的文本 * @param {Element} el - 当前元素 */ fallbackCopy(codeText, el) { const textarea = this.win.document.createElement('textarea'); textarea.value = codeText; // 设置样式使文本框不可见 textarea.style.position = 'fixed'; textarea.style.left = '-9999px'; textarea.style.top = '0'; // 添加 readonly 属性防止移动端虚拟键盘弹出 textarea.setAttribute('readonly', 'readonly'); this.win.document.body.appendChild(textarea); textarea.focus(); textarea.select(); try { this.win.document.execCommand('copy'); // 显示复制成功提示 this.showCopySuccessToast(codeText, el); } catch (err) { console.error('Copy failed:', err); } this.win.document.body.removeChild(textarea); } /** * 创建 Toast 元素 * @returns {Element} 创建的 Toast 元素 */ createToastEl_() { const toast = document.createElement('ljs-toast'); toast.setAttribute('layout', 'nodisplay'); toast.setAttribute('hidden', ''); toast.setAttribute('id', 'discount-code-toast'); toast.style.zIndex = '1051'; return toast; } /** * 挂载 Toast 元素到 body * @returns {Element} 挂载的 Toast 元素 */ mountToastToBody_() { const existingToast = this.win.document.getElementById('discount-code-toast'); if (existingToast) { return existingToast; } const toast = this.createToastEl_(); this.win.document.body.appendChild(toast); return toast; } /** * 复制成功的提醒 * @param {string} codeText - 要复制的文本 * @param {Element} el - 当前元素 */ showCopySuccessToast(codeText, el) { const $toast = this.mountToastToBody_(); SPZ.whenApiDefined($toast).then(toast => { toast.showToast("Discount code copied !"); this.codeCopyInSessionStorage(codeText); }); } /** * 复制优惠码成功后要存一份到本地存储中,购物车使用 * @param {string} codeText - 要复制的文本 */ codeCopyInSessionStorage(codeText) { try { sessionStorage.setItem('other-copied-coupon', codeText); } catch (error) { console.error(error) } } } // 注册自定义元素 SPZ.defineElement('spz-custom-discount-code-model', SpzCustomDiscountCodeModel);
${function(){ return `
Discount code cannot be displayed here. Please move it to the product detail area. (This prompt will not be displayed on the client-side)
`; }()}
/** * Custom discount code component that handles displaying and managing discount codes * @extends {SPZ.BaseElement} */ class SpzCustomDiscountCode extends SPZ.BaseElement { constructor(element) { super(element); // API endpoint for fetching discount codes this.getDiscountCodeApi = "\/api\/storefront\/promotion\/code\/list"; // Debounce timer for resize events this.timer = null; // Current variant ID this.variantId = "ee5158d2-771c-455b-aaec-c58a678cbc0b"; // Store discount code data this.discountCodeData = {} } /** * Check if layout is supported * @param {string} layout - Layout type * @return {boolean} */ isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } /** * Initialize component after build */ buildCallback() { this.templates_ = SPZServices.templatesForDoc(); this.viewport_ = this.getViewport(); // Bind methods to maintain context this.render = this.render.bind(this); this.resize = this.resize.bind(this); this.switchVariant = this.switchVariant.bind(this); } /** * Setup component when mounted */ mountCallback() { this.getData(); // Add event listeners this.viewport_.onResize(this.resize); this.win.document.addEventListener('dj.variantChange', this.switchVariant); } /** * Cleanup when component is unmounted */ unmountCallback() { this.viewport_.removeResize(this.resize); this.win.document.removeEventListener('dj.variantChange', this.switchVariant); // 清除定时器 if (this.timer) { clearTimeout(this.timer); this.timer = null; } } /** * Handle resize events with debouncing */ resize() { if (this.timer) { clearTimeout(this.timer) this.timer = null; } this.timer = setTimeout(() => { if (appDiscountUtils.inProductBody(this.element)) { this.render(); } else { this.renderSkeleton(); } }, 200); } /** * Handle variant changes * @param {Event} event - Variant change event */ switchVariant(event) { const variant = event.detail.selected; if (variant.product_id == '1423f4ae-5f05-452d-b40a-686b5829c290' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } /** * Fetch discount code data from API */ getData() { if (appDiscountUtils.inProductBody(this.element)) { const reqBody = { product_id: "1423f4ae-5f05-452d-b40a-686b5829c290", variant_id: this.variantId, product_type: "default", } if (!reqBody.product_id || !reqBody.variant_id) return; this.discountCodeData = {}; this.win.fetch(this.getDiscountCodeApi, { method: "POST", body: JSON.stringify(reqBody), headers: { "Content-Type": "application/json" } }).then(async (response) => { if (response.ok) { let data = await response.json(); if (data.list && data.list.length > 0) { data.list[0].product_setting.template_config = JSON.parse(data.list[0].product_setting.template_config); // Format timestamps to local timezone const zone = this.win.SHOPLAZZA.shop.time_zone; data.list = data.list.map(item => { if(+item.ends_at !== -1) { item.ends_at = appDiscountUtils.convertTimestampToFormat(+item.ends_at, zone); } item.starts_at = appDiscountUtils.convertTimestampToFormat(+item.starts_at, zone); return item; }); } this.discountCodeData = data; this.render(); } else { this.clearDom(); } }).catch(err => { console.error("discount_code", err) this.clearDom(); }); } else { this.renderSkeleton(); } } /** * Clear component DOM except template */ clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } /** * Render discount codes with formatted dates */ render() { // Render using discount code model SPZ.whenApiDefined(document.querySelector('#spz_custom_discount_code_model')).then(renderApi => { renderApi.doRender_({ discountCodeData: this.discountCodeData }) }).catch(err => { this.clearDom(); }) } renderSkeleton() { // Render template for non-product pages this.templates_ .findAndRenderTemplate(this.element, { isMobile: appDiscountUtils.judgeMobile() }) .then((el) => { this.clearDom(); this.element.appendChild(el); }) .catch(err => { this.clearDom(); }); } } // Register custom element SPZ.defineElement('spz-custom-discount-code', SpzCustomDiscountCode);
Gender:
MENS
${function(){ return `
${data.value}
`; }()}
MENS
${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return `
${tipText}
` }()}
Size:
Mens US4 \ UK3.5 \ EU36 \ 22CM
${function(){ return `
${data.value}
`; }()}
Mens US4 \ UK3.5 \ EU36 \ 22CM
Mens US4.5 \ UK4 \ EU37 \ 22.5CM
Mens US5 \ UK4.5 \ EU37.5 \ 23CM
Mens US5.5 \ UK5 \ EU38 \ 23.5CM
Mens US6 \ UK5.5 \ EU38.5 \ 24CM
Mens US6.5 \ UK6 \ EU39.5 \ 24.5CM
Mens US7 \ UK6.5 \ EU40 \ 25CM
Mens US7.5 \ UK7 \ EU40.5 \ 25.5CM
Mens US8 \ UK7.5 \ EU41.5 \ 26CM
Mens US8.5 \ UK8 \ EU42 \ 26.5CM
Mens US9 \ UK8.5 \ EU42.5 \ 27CM
Mens US9.5 \ UK9 \ EU43 \ 27.5CM
Mens US10 \ UK9.5 \ EU44 \ 28CM
Mens US10.5 \ UK10 \ EU44.5 \ 28.5CM
Mens US11 \ UK10.5 \ EU45 \ 29CM
Mens US11.5 \ UK11 \ EU45.5 \ 29.5CM
Mens US12 \ UK11.5 \ EU46.5 \ 30CM
Mens US12.5 \ UK12 \ EU47 \ 30.5CM
Mens US13 \ UK12.5 \ EU47.5 \ 31CM
Mens US14 \ UK13.5 \ EU49 \ 32CM
Mens US15 \ UK14.5 \ EU50 \ 33CM
Mens US16 \ UK15.5 \ EU51 \ 34CM
Mens US17 \ UK16.5 \ EU52 \ 35CM
Mens US18 \ UK17.5 \ EU53 \ 36CM
Mens US19 \ UK18.5 \ EU54 \ 37CM
Mens US20 \ UK19.5 \ EU55 \ 38CM
${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return `
${tipText}
` }()}
Quantity
Add to cart
$21.99
${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":"ee5158d2-771c-455b-aaec-c58a678cbc0b","product_id":"1423f4ae-5f05-452d-b40a-686b5829c290","title":"MENS-Mens US4 \\ UK3.5 \\ EU36 \\ 22CM","weight_unit":"kg","inventory_quantity":1000,"sku":"U9060NBN-40","barcode":"","position":1,"option1":"MENS","option2":"Mens US4 \\ UK3.5 \\ EU36 \\ 22CM","option3":"","note":"","image":null,"wholesale_price":[{"price":21.99,"min_quantity":1}],"weight":"0","compare_at_price":"180","price":"21.99","retail_price":"180","available":true,"url":"\/products\/new-balance-9060-beach-glass-u9060nbn?variant=ee5158d2-771c-455b-aaec-c58a678cbc0b","available_quantity":999999999,"options":[{"name":"Gender","value":"MENS"},{"name":"Size","value":"Mens US4 \\ UK3.5 \\ EU36 \\ 22CM"}],"off_ratio":"88","flashsale_info":{"variant_id":"ee5158d2-771c-455b-aaec-c58a678cbc0b","product_id":"","quantity":0,"discount_id":"","limit_time":0,"limit_buy":0,"user_limit_buy":0,"discount_sales":0,"discount_sales_rate":"","discount_stock":0,"ends_at":0,"starts_at":0,"allow_oversold":"","allocation_method":"","price":"21.99","compare_at_price":"","discount_price":"21.99","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"88","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"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.
Sku :
U9060NBN-40
${function(){ const variantData = data.variant || {"id":"ee5158d2-771c-455b-aaec-c58a678cbc0b","product_id":"1423f4ae-5f05-452d-b40a-686b5829c290","title":"MENS-Mens US4 \\ UK3.5 \\ EU36 \\ 22CM","weight_unit":"kg","inventory_quantity":1000,"sku":"U9060NBN-40","barcode":"","position":1,"option1":"MENS","option2":"Mens US4 \\ UK3.5 \\ EU36 \\ 22CM","option3":"","note":"","image":null,"wholesale_price":[{"price":21.99,"min_quantity":1}],"weight":"0","compare_at_price":"180","price":"21.99","retail_price":"180","available":true,"url":"\/products\/new-balance-9060-beach-glass-u9060nbn?variant=ee5158d2-771c-455b-aaec-c58a678cbc0b","available_quantity":999999999,"options":[{"name":"Gender","value":"MENS"},{"name":"Size","value":"Mens US4 \\ UK3.5 \\ EU36 \\ 22CM"}],"off_ratio":"88","flashsale_info":{"variant_id":"ee5158d2-771c-455b-aaec-c58a678cbc0b","product_id":"","quantity":0,"discount_id":"","limit_time":0,"limit_buy":0,"user_limit_buy":0,"discount_sales":0,"discount_sales_rate":"","discount_stock":0,"ends_at":0,"starts_at":0,"allow_oversold":"","allocation_method":"","price":"21.99","compare_at_price":"","discount_price":"21.99","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"88","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":0}; return `
Sku :
${variantData && variantData.sku}
Weight :
${variantData && variantData.weight}${variantData && variantData.weight_unit}
Barcode :
${variantData && variantData.barcode}
` }()}
Cart
Your shopping bag is empty
Continue shopping
${item.product_title}
${item.options.map(option => option.value).join('/')}
${propertie.name}/${propertie.isImage ? `
View image
` : propertie.value}
Free gift
Mixed Lot
*${item.quantity}
${item.item_text}
${discount_item.title}
(-
)
${(function(){ var total_price = data.total_price; var postageFreeAmount = 35; var freeAmount = postageFreeAmount - total_price; var isFreeShipping = freeAmount <= 0; var rate = Math.min(total_price / postageFreeAmount * 100, 100).toFixed(2); const textArray = ("Spend {{ amount }} more and get free shipping!").split(/\{\{\s*amount\s*\}\}/); const textArrayHtml = textArray.map((text, index) => { if (index == 0) { return `
${text}
`; } return `
${text}
`; }).join(''); return `
${textArrayHtml}
You've got free shipping
${rate}%
` })()}
Total:
(Tax included)
${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `
${text}
`; } return `
${text}
`; }).join(''); }()}
${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `
${text}
`; } return `
${text}
`; }).join(''); }()}
${discount_application.title}:
-
${data.invalid_msg}
Check out
Taxes and shipping calculated at checkout
${(function(){ var total_price = data.total_price; var postageFreeAmount = 35; var freeAmount = postageFreeAmount - total_price; var isFreeShipping = freeAmount <= 0; var rate = Math.min(total_price / postageFreeAmount * 100, 100).toFixed(2); const textArray = ("Spend {{ amount }} more and get free shipping!").split(/\{\{\s*amount\s*\}\}/); const textArrayHtml = textArray.map((text, index) => { if (index == 0) { return `
${text}
`; } return `
${text}
`; }).join(''); return `
${textArrayHtml}
You've got free shipping
${rate}%
` })()}
${data.invalid_msg}
Total:
(Tax included)
(Tax included)
${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `
${text}
`; } return `
${text}
`; }).join(''); }()}
${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `
${text}
`; } return `
${text}
`; }).join(''); }()}
${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `
${text}
`; } return `
${text}
`; }).join(''); }()}
${discount_application.title}:
-
Check out
${data.invalid_msg}
Check out
Taxes and shipping calculated at checkout
Subtotal:
${discount_application.title}:
-
Total:
(Tax included)
Check out
Taxes and shipping calculated at checkout
const summaryStickyRender = document.querySelector('#cart-drawer-summary-sticky-render'); if (summaryStickyRender) { document.body.style.setProperty('--cart-drawer-summary-sticky-height', summaryStickyRender.clientHeight + 'px'); }
View Cart
${function(){ console.log('quick-shop-render',data); const productData = data.product; let product_change_event = '', mouse_over_event = ' '; mouse_out_event = ''; const product_options = productData.options.filter(Boolean) || []; const selectedVariant = productData.variants.find(v => v.available) || productData.variants[0]; const statusLan = ((selectedVariant && !selectedVariant.available) || (!selectedVariant && !productData.available)) ? "Sold out" : "Add to cart"; return `
${statusLan}
` }()}
${function(){ const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const variantData = currentSelectVariant || defaultVariant || data; const retail_price = variantData.retail_price || 0; return `
Retail
` }()}
${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":"ee5158d2-771c-455b-aaec-c58a678cbc0b","product_id":"1423f4ae-5f05-452d-b40a-686b5829c290","title":"MENS-Mens US4 \\ UK3.5 \\ EU36 \\ 22CM","weight_unit":"kg","inventory_quantity":1000,"sku":"U9060NBN-40","barcode":"","position":1,"option1":"MENS","option2":"Mens US4 \\ UK3.5 \\ EU36 \\ 22CM","option3":"","note":"","image":null,"wholesale_price":[{"price":21.99,"min_quantity":1}],"weight":"0","compare_at_price":"180","price":"21.99","retail_price":"180","available":true,"url":"\/products\/new-balance-9060-beach-glass-u9060nbn?variant=ee5158d2-771c-455b-aaec-c58a678cbc0b","available_quantity":999999999,"options":[{"name":"Gender","value":"MENS"},{"name":"Size","value":"Mens US4 \\ UK3.5 \\ EU36 \\ 22CM"}],"off_ratio":"88","flashsale_info":{"variant_id":"ee5158d2-771c-455b-aaec-c58a678cbc0b","product_id":"","quantity":0,"discount_id":"","limit_time":0,"limit_buy":0,"user_limit_buy":0,"discount_sales":0,"discount_sales_rate":"","discount_stock":0,"ends_at":0,"starts_at":0,"allow_oversold":"","allocation_method":"","price":"21.99","compare_at_price":"","discount_price":"21.99","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"88","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"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 ? `
` : '
'; } }()}
${function(){ const optionName = option.name || ''; const optionId = option.id || ''; let isThumbImage = !!option.showThumbImage; const thumbStyle = "image_with_text"; const variantType = "button"; const isSelected = (value) => { const selected = (data.selectedOptions || []).find(v => v.name === optionName); return selected && selected.value.length && selected.value[0] == value; }; const getThumbImage = (value) => { const options = data.product.options || []; const option = options.find(o => o.name === optionName); if (option.thumbImages) { const thumbImage = option.thumbImages.find(t => t.value === value); if (thumbImage && thumbImage.image) { return { src: thumbImage.image.src, alt: thumbImage.image.alt }; } } return {src: '', alt: ''}; }; return `
${optionName}:
${data.selectedOptions && data.selectedOptions.length && data.selectedOptions.find(v => v.name === optionName).value[0]}
${value}
${optionName}
${value}
${value}
` }()}
${data.value}