${(function(){ const get_random_six_digits = () => { return Math.random().toString().slice(-6) }; const wholesale_enabled = false; const setting_product_image_display = "133.33%"; 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
` : '' }` : "Sold out" }
Mixed Lot
${data.title}
${ data.price_min != data.price_max ? `from
` : `
` }
+${data.remainInvisibleThumbCount}
` })()}
Log in
Create an account
${data.data && data.data.count}
Home
policy
shipping policy
privacy policy
Save
$3.86
Save
$3.86
Summer Shark Slippers Women Shark Slides Men Bathroom Flip Flops Adult Home Anti-skid Flat Shoes Couple Children's Funny Sandals
from
$7.69
$11.55
group G
Group G1
group G2
group G3
复制Suitable for 15inch Honda Fit, Forerunner, Glory, Toyota Vios, Corolla, Yaris Aluminum Alloy Wheels
from
$2.50
品牌故事
故事1
故事2
新品
衣服
外套
Save
$0.90
Save
$0.90
100-pack / 300-pack Fresh Keeping Bags Reusable Sealing Elastic Stretch Food Storage Covers Universal Kitchen Wrap Seal Caps
from
$2.09
$2.99
More links
${(function(){ var linkList =[false,true,true,true,true].slice(offset); var hasChild = linkList.some(v => v); if(!hasChild){ return `
Home
policy
group G
品牌故事
新品
` } return `
Home
policy
group G
品牌故事
新品
shipping policy
privacy policy
Group G1
group G2
group G3
故事1
故事2
衣服
外套
` })()}
Home
policy
shipping policy
privacy policy
Save
$3.86
Save
$3.86
Summer Shark Slippers Women Shark Slides Men Bathroom Flip Flops Adult Home Anti-skid Flat Shoes Couple Children's Funny Sandals
from
$7.69
$11.55
group G
Group G1
group G2
group G3
复制Suitable for 15inch Honda Fit, Forerunner, Glory, Toyota Vios, Corolla, Yaris Aluminum Alloy Wheels
from
$2.50
品牌故事
故事1
故事2
新品
衣服
外套
Save
$0.90
Save
$0.90
100-pack / 300-pack Fresh Keeping Bags Reusable Sealing Elastic Stretch Food Storage Covers Universal Kitchen Wrap Seal Caps
from
$2.09
$2.99
More links
${(function(){ var linkList =[false,true,true,true,true].slice(offset); var hasChild = linkList.some(v => v); if(!hasChild){ return `
Home
policy
group G
品牌故事
新品
` } return `
Home
policy
group G
品牌故事
新品
shipping policy
privacy policy
Group G1
group G2
group G3
故事1
故事2
衣服
外套
` })()}
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.
` })()}
${item}
Search
Recently searched
${item}
Hot searches
${item.word}
Results
${item.highlightHtml}
Home
policy
policy
shipping policy
privacy policy
group G
group G
Group G1
group G2
group G3
品牌故事
品牌故事
故事1
故事2
新品
新品
衣服
衣服
外套
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(); })();
2/36
${data.index + 1}/${data.total}
${Array(data.total).fill(0).map((num, index) => `
`).join('')}
复制Suitable for 15inch Honda Fit, Forerunner, Glory, Toyota Vios, Corolla, Yaris Aluminum Alloy Wheels
$2.50
-
$375.00
(Tax included)
${function() { const variantData = data.variant || {"id":"b5ffaaea-2e60-42eb-a4d7-0b786c8528ec","product_id":"ec493346-6636-48a2-bc73-07a6d41160f9","title":"14x5.5j- 14inch fit","weight_unit":"kg","inventory_quantity":0,"sku":"A0061848--14x5.5j- 14inch fit","barcode":"","position":1,"option1":"14x5.5j- 14inch fit","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/40b0c3639a4a5a700de17fd42fc49b5f.jpeg","path":"40b0c3639a4a5a700de17fd42fc49b5f.jpeg","width":800,"height":800,"alt":"\u590d\u5236Suitable for 15inch Honda Fit, Forerunner, Glory, Toyota Vios, Corolla, Yaris Aluminum Alloy Wheels","aspect_ratio":1},"wholesale_price":[{"price":251.09,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"251.09","retail_price":"0","available":true,"url":"\/products\/suitable-for-15inch-honda-fit-forerunner-glory-toyota-vios-corolla-yaris-aluminum-alloy-wheels-6n6q?variant=b5ffaaea-2e60-42eb-a4d7-0b786c8528ec","available_quantity":999999999,"options":[{"name":"Specification","value":"14x5.5j- 14inch fit"}],"off_ratio":"0","flashsale_info":{"variant_id":"b5ffaaea-2e60-42eb-a4d7-0b786c8528ec","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":"251.09","compare_at_price":"","discount_price":"251.09","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"0","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":57}; const saveType = "amount"; const productLabelDiscountOn = true; return `
-
(Tax included)
${saveType == 'percentage' ? `
-${variantData.off_ratio}%
` : `
-
` }
(Tax included)
`; }()}
Specification:
14x5.5j- 14inch fit
${function(){ return `
${data.value}
`; }()}
14x5.5j- 14inch fit
14x5.5j- 15inch gun gray
14x5.5j- 15inch black
14x5.5j- 15inch fit model a
14x5.5j- 15inch fit b model
14x5.5j- 15inch fit c model
14x5.5j- 15inch fit d model
14x5.5j- 15inch fit e model
14x5.5j- 15inch fit f model
14x5.5j- 15inch fit g model
14x5.5j- 15inch fit h model
14x5.5j- 15inch fit j model
14x5.5j- 15inch fit k model
14x5.5j- 15inch fengfan model a
14x5.5j- 15inch fengfan b model
14x5.5j- 15inch fengfan c model
14x5.5j- 15inch fengfan d model
14x5.5j- 15inch gorey model a
14x5.5j- 16inch gore
14x5.5j- 16inch fengfan
14x5.5j-modified type a
14x5.5j-modified type b
14x5.5j-modified c model
14x5.5j-vios a model
14x5.5j-vios b model
14x5.5j-vios c model
14x5.5j-vios d model
14x5.5j-vios e model
14x5.5j-zhixuan a model
14x5.5j-zhixuan b model
14x5.5j-zhixuan c model
14x5.5j-zhixuan d model
14x5.5j-zhixuanx
14x5.5j-yaris a model
14x5.5j-yaris b model
14x5.5j-corolla model a
14x5.5j-corolla model b
15x5.5j- 14inch fit
15x5.5j- 15inch gun gray
15x5.5j- 15inch black
15x5.5j- 15inch fit model a
15x5.5j- 15inch fit b model
15x5.5j- 15inch fit c model
15x5.5j- 15inch fit d model
15x5.5j- 15inch fit e model
15x5.5j- 15inch fit f model
15x5.5j- 15inch fit g model
15x5.5j- 15inch fit h model
15x5.5j- 15inch fit j model
15x5.5j- 15inch fit k model
15x5.5j- 15inch fengfan model a
15x5.5j- 15inch fengfan b model
15x5.5j- 15inch fengfan c model
15x5.5j- 15inch fengfan d model
15x5.5j- 15inch gorey type a
15x5.5j- 16inch gorei
15x5.5j- 16inch fengfan
15x5.5j-modified type a
15x5.5j-modified type b
15x5.5j-modified c model
15x5.5j-vios a model
15x5.5j-vios b model
15x5.5j-vios c model
15x5.5j-vios d model
15x5.5j-vios e model
15x5.5j-zhixuan a model
15x5.5j-zhixuan b model
15x5.5j-zhixuan c model
15x5.5j-zhixuan d model
15x5.5j-zhixuanx
15x5.5j-yaris a model
15x5.5j-yaris b model
15x5.5j-corolla model a
15x5.5j-corolla model b
15x6j- 14inch fit
15x6j- 15inch gun gray
15x6j- 15inch black
15x6j- 15inch fit model a
15x6j- 15inch fit b model
15x6j- 15inch fit c model
15x6j- 15inch fit d model
15x6j- 15inch fit e model
15x6j- 15inch fit f model
15x6j- 15inch fit g model
15x6j- 15inch fit h model
15x6j- 15inch fit j model
15x6j- 15inch fit k model
15x6j- 15inch fengfan model a
15x6j- 15inch fengfan b style
15x6j- 15inch fengfan c model
15x6j- 15inch fengfan d model
15x6j- 15inch gorey type a
15x6j- 16inch gore
15x6j- 16inch fengfan
15x6j-modified type a
15x6j-modified type b
15x6j-modified c model
15x6j-vios a model
15x6j-vios b model
15x6j-vios c model
15x6j-vios d model
15x6j-vios e model
15x6j-zhixuan a model
15x6j-zhixuan b model
15x6j-zhixuan c model
15x6j-zhixuan d model
15x6j-zhixuanx
15x6j-yaris a model
15x6j-yaris b model
15x6j-corolla model a
15x6j-corolla model b
16x6.5j- 14inch fit
16x6.5j- 15inch gun gray
16x6.5j- 15inch black
16x6.5j- 15inch fit model a
16x6.5j- 15inch fit b model
16x6.5j- 15inch fit c model
16x6.5j- 15inch fit d model
16x6.5j- 15inch fit e model
16x6.5j- 15inch fit f model
16x6.5j- 15inch fit g model
16x6.5j- 15inch fit h model
16x6.5j- 15inch fit j model
16x6.5j- 15inch fit k model
16x6.5j- 15inch fengfan model a
16x6.5j- 15inch fengfan b model
16x6.5j- 15inch fengfan c model
16x6.5j- 15inch fengfan d model
16x6.5j- 15inch gorey model a
16x6.5j- 16inch gorei
16x6.5j- 16inch fengfan
16x6.5j-modified type a
16x6.5j-modified type b
16x6.5j-modified c model
16x6.5j-vios a model
16x6.5j-vios b model
16x6.5j-vios c model
16x6.5j-vios d model
16x6.5j-vios e model
16x6.5j-zhixuan a model
16x6.5j-zhixuan b model
16x6.5j-zhixuan c model
16x6.5j-zhixuan d model
16x6.5j-zhixuanx
16x6.5j-yaris a model
16x6.5j-yaris b model
16x6.5j-corolla model a
16x6.5j-corolla model b
${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return `
${tipText}
` }()}
Quantity
Add to cart
$251.09
${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":"b5ffaaea-2e60-42eb-a4d7-0b786c8528ec","product_id":"ec493346-6636-48a2-bc73-07a6d41160f9","title":"14x5.5j- 14inch fit","weight_unit":"kg","inventory_quantity":0,"sku":"A0061848--14x5.5j- 14inch fit","barcode":"","position":1,"option1":"14x5.5j- 14inch fit","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/40b0c3639a4a5a700de17fd42fc49b5f.jpeg","path":"40b0c3639a4a5a700de17fd42fc49b5f.jpeg","width":800,"height":800,"alt":"\u590d\u5236Suitable for 15inch Honda Fit, Forerunner, Glory, Toyota Vios, Corolla, Yaris Aluminum Alloy Wheels","aspect_ratio":1},"wholesale_price":[{"price":251.09,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"251.09","retail_price":"0","available":true,"url":"\/products\/suitable-for-15inch-honda-fit-forerunner-glory-toyota-vios-corolla-yaris-aluminum-alloy-wheels-6n6q?variant=b5ffaaea-2e60-42eb-a4d7-0b786c8528ec","available_quantity":999999999,"options":[{"name":"Specification","value":"14x5.5j- 14inch fit"}],"off_ratio":"0","flashsale_info":{"variant_id":"b5ffaaea-2e60-42eb-a4d7-0b786c8528ec","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":"251.09","compare_at_price":"","discount_price":"251.09","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"0","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":57}; 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 :
A0061848--14x5.5j- 14inch fit
${function(){ const variantData = data.variant || {"id":"b5ffaaea-2e60-42eb-a4d7-0b786c8528ec","product_id":"ec493346-6636-48a2-bc73-07a6d41160f9","title":"14x5.5j- 14inch fit","weight_unit":"kg","inventory_quantity":0,"sku":"A0061848--14x5.5j- 14inch fit","barcode":"","position":1,"option1":"14x5.5j- 14inch fit","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/40b0c3639a4a5a700de17fd42fc49b5f.jpeg","path":"40b0c3639a4a5a700de17fd42fc49b5f.jpeg","width":800,"height":800,"alt":"\u590d\u5236Suitable for 15inch Honda Fit, Forerunner, Glory, Toyota Vios, Corolla, Yaris Aluminum Alloy Wheels","aspect_ratio":1},"wholesale_price":[{"price":251.09,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"251.09","retail_price":"0","available":true,"url":"\/products\/suitable-for-15inch-honda-fit-forerunner-glory-toyota-vios-corolla-yaris-aluminum-alloy-wheels-6n6q?variant=b5ffaaea-2e60-42eb-a4d7-0b786c8528ec","available_quantity":999999999,"options":[{"name":"Specification","value":"14x5.5j- 14inch fit"}],"off_ratio":"0","flashsale_info":{"variant_id":"b5ffaaea-2e60-42eb-a4d7-0b786c8528ec","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":"251.09","compare_at_price":"","discount_price":"251.09","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"0","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":57}; return `
Sku :
${variantData && variantData.sku}
Weight :
${variantData && variantData.weight}${variantData && variantData.weight_unit}
Barcode :
${variantData && variantData.barcode}
` }()}
/** * 优惠码组件模型类 * 处理优惠码的显示和交互逻辑 */ 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);
/** * 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 = "b5ffaaea-2e60-42eb-a4d7-0b786c8528ec"; // 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 == 'ec493346-6636-48a2-bc73-07a6d41160f9' && 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: "ec493346-6636-48a2-bc73-07a6d41160f9", 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);
Description测试
You may also like
Recently Viewed
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}
(-
)
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}
Taxes and shipping calculated at checkout
Check out
${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":"b5ffaaea-2e60-42eb-a4d7-0b786c8528ec","product_id":"ec493346-6636-48a2-bc73-07a6d41160f9","title":"14x5.5j- 14inch fit","weight_unit":"kg","inventory_quantity":0,"sku":"A0061848--14x5.5j- 14inch fit","barcode":"","position":1,"option1":"14x5.5j- 14inch fit","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/40b0c3639a4a5a700de17fd42fc49b5f.jpeg","path":"40b0c3639a4a5a700de17fd42fc49b5f.jpeg","width":800,"height":800,"alt":"\u590d\u5236Suitable for 15inch Honda Fit, Forerunner, Glory, Toyota Vios, Corolla, Yaris Aluminum Alloy Wheels","aspect_ratio":1},"wholesale_price":[{"price":251.09,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"251.09","retail_price":"0","available":true,"url":"\/products\/suitable-for-15inch-honda-fit-forerunner-glory-toyota-vios-corolla-yaris-aluminum-alloy-wheels-6n6q?variant=b5ffaaea-2e60-42eb-a4d7-0b786c8528ec","available_quantity":999999999,"options":[{"name":"Specification","value":"14x5.5j- 14inch fit"}],"off_ratio":"0","flashsale_info":{"variant_id":"b5ffaaea-2e60-42eb-a4d7-0b786c8528ec","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":"251.09","compare_at_price":"","discount_price":"251.09","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"0","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":57}; 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}