${(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; }; 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}
` })()}
Search
Log in
Create an account
${data.data && data.data.count}
BATHROOM
FAUCETS
Single hole faucets
Widespread Faucets
Centerset Faucets
Bathtub Faucets
Freestanding Tub Faucets
SHOWER FAUCETS
Dual shower heads
Shower Faucets
With body jets
With Sliding bar
SMART SHOWER
With LED
With LED and music
BATHROOM PARTS
Towel Rack
EVERSTEIN SFS1007-BK12 Thermostatic Ceiling-Mounted Rainfall Shower System with Dual Heads and Rough-in Valve
$529.00
KITCHEN
KITCHEN FAUCETS
Pull down kitchen faucets
Pot filler kitchen faucets
SERVICE
Support
Contact us
Return & Warranty
Installation help
Part
Replacement
INSPIRATION
NEW
More links
${(function(){ const formatLinks = (links) => { return links.map(link => { link.tag = tags[link.title.toUpperCase()] || {}; link.target_attr = link.target == '_blank' ? 'target="_blank"' : ''; link.href_attr = link.url ? `href="${link.url}"` : ''; if(link.children && link.children.length){ link.children = formatLinks(link.children); } return link; }) }; const tags = {"BEST SELLER":{"label":"\ud83d\udd25","bg":"rgba(230, 36, 5, 0)","color":"#FFFFFF"}}; let linkList = [ { id: 70201481, title: "BATHROOM", url: "\/collections\/bathroom", target: "", levels: 2, product0: { id: ("91be8dd6-2d3b-4c66-85fb-6fdc866e3565") }, children: [ { title: "FAUCETS", url: "", target: "", levels: 1, children: [ { title: "Single hole faucets", url: "", target: "", levels: 0, }, { title: "Widespread Faucets", url: "\/collections\/widespread-faucets", target: "", levels: 0, }, { title: "Centerset Faucets", url: "", target: "", levels: 0, }, { title: "Bathtub Faucets", url: "\/collections\/bathtub-faucets", target: "", levels: 0, }, { title: "Freestanding Tub Faucets", url: "", target: "", levels: 0, }, ] }, { title: "SHOWER FAUCETS", url: "", target: "", levels: 1, children: [ { title: "Dual shower heads", url: "\/collections\/dual-shower-heads", target: "", levels: 0, }, { title: "Shower Faucets", url: "\/collections\/shower-faucet", target: "", levels: 0, }, { title: "With body jets", url: "\/collections\/with-body-jets", target: "", levels: 0, }, { title: "With Sliding bar", url: "\/collections\/with-sliding-bar", target: "", levels: 0, }, ] }, { title: "SMART SHOWER", url: "", target: "", levels: 1, children: [ { title: "With LED", url: "\/collections\/with-led", target: "", levels: 0, }, { title: "With LED and music", url: "\/collections\/with-led-and-music", target: "", levels: 0, }, ] }, { title: "BATHROOM PARTS", url: "", target: "", levels: 1, children: [ { title: "Towel Rack", url: "\/collections\/towel-rack", target: "", levels: 0, }, ] }, ] }, { id: 70201515, title: "KITCHEN", url: "", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "KITCHEN FAUCETS", url: "", target: "", levels: 1, children: [ { title: "Pull down kitchen faucets", url: "\/collections\/pull-down-kitchen-sink", target: "", levels: 0, }, { title: "Pot filler kitchen faucets", url: "\/collections\/potfiller-kitchen-faucet", target: "", levels: 0, }, ] }, ] }, { id: 70201523, title: "SERVICE", url: "", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "Support", url: "", target: "", levels: 1, children: [ { title: "Contact us", url: "\/pages\/contact-us", target: "", levels: 0, }, { title: "Return & Warranty", url: "\/pages\/return-warranty", target: "", levels: 0, }, { title: "Installation help", url: "\/pages\/installation-video", target: "", levels: 0, }, ] }, { title: "Part", url: "", target: "", levels: 1, children: [ { title: "Replacement", url: "", target: "", levels: 0, }, ] }, ] }, { id: 70201537, title: "INSPIRATION", url: "", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 70201539, title: "NEW", url: "\/collections\/new-arrivals", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, ].slice(offset); linkList = formatLinks(linkList); const hasChild = linkList.some(link => !!(link.children && link.children.length || link.product0.id)); return `
${link.title}
${link.tag.label}
${second_link.title}
${second_link.tag.label}
${third_links.title}
${third_links.tag.label}
${link.title}
${link.tag.label}
` })()}
BATHROOM
FAUCETS
Single hole faucets
Widespread Faucets
Centerset Faucets
Bathtub Faucets
Freestanding Tub Faucets
SHOWER FAUCETS
Dual shower heads
Shower Faucets
With body jets
With Sliding bar
SMART SHOWER
With LED
With LED and music
BATHROOM PARTS
Towel Rack
EVERSTEIN SFS1007-BK12 Thermostatic Ceiling-Mounted Rainfall Shower System with Dual Heads and Rough-in Valve
$529.00
KITCHEN
KITCHEN FAUCETS
Pull down kitchen faucets
Pot filler kitchen faucets
SERVICE
Support
Contact us
Return & Warranty
Installation help
Part
Replacement
INSPIRATION
NEW
More links
${(function(){ const formatLinks = (links) => { return links.map(link => { link.tag = tags[link.title.toUpperCase()] || {}; link.target_attr = link.target == '_blank' ? 'target="_blank"' : ''; link.href_attr = link.url ? `href="${link.url}"` : ''; if(link.children && link.children.length){ link.children = formatLinks(link.children); } return link; }) }; const tags = {"BEST SELLER":{"label":"\ud83d\udd25","bg":"rgba(230, 36, 5, 0)","color":"#FFFFFF"}}; let linkList = [ { id: 70201481, title: "BATHROOM", url: "\/collections\/bathroom", target: "", levels: 2, product0: { id: ("91be8dd6-2d3b-4c66-85fb-6fdc866e3565") }, children: [ { title: "FAUCETS", url: "", target: "", levels: 1, children: [ { title: "Single hole faucets", url: "", target: "", levels: 0, }, { title: "Widespread Faucets", url: "\/collections\/widespread-faucets", target: "", levels: 0, }, { title: "Centerset Faucets", url: "", target: "", levels: 0, }, { title: "Bathtub Faucets", url: "\/collections\/bathtub-faucets", target: "", levels: 0, }, { title: "Freestanding Tub Faucets", url: "", target: "", levels: 0, }, ] }, { title: "SHOWER FAUCETS", url: "", target: "", levels: 1, children: [ { title: "Dual shower heads", url: "\/collections\/dual-shower-heads", target: "", levels: 0, }, { title: "Shower Faucets", url: "\/collections\/shower-faucet", target: "", levels: 0, }, { title: "With body jets", url: "\/collections\/with-body-jets", target: "", levels: 0, }, { title: "With Sliding bar", url: "\/collections\/with-sliding-bar", target: "", levels: 0, }, ] }, { title: "SMART SHOWER", url: "", target: "", levels: 1, children: [ { title: "With LED", url: "\/collections\/with-led", target: "", levels: 0, }, { title: "With LED and music", url: "\/collections\/with-led-and-music", target: "", levels: 0, }, ] }, { title: "BATHROOM PARTS", url: "", target: "", levels: 1, children: [ { title: "Towel Rack", url: "\/collections\/towel-rack", target: "", levels: 0, }, ] }, ] }, { id: 70201515, title: "KITCHEN", url: "", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "KITCHEN FAUCETS", url: "", target: "", levels: 1, children: [ { title: "Pull down kitchen faucets", url: "\/collections\/pull-down-kitchen-sink", target: "", levels: 0, }, { title: "Pot filler kitchen faucets", url: "\/collections\/potfiller-kitchen-faucet", target: "", levels: 0, }, ] }, ] }, { id: 70201523, title: "SERVICE", url: "", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "Support", url: "", target: "", levels: 1, children: [ { title: "Contact us", url: "\/pages\/contact-us", target: "", levels: 0, }, { title: "Return & Warranty", url: "\/pages\/return-warranty", target: "", levels: 0, }, { title: "Installation help", url: "\/pages\/installation-video", target: "", levels: 0, }, ] }, { title: "Part", url: "", target: "", levels: 1, children: [ { title: "Replacement", url: "", target: "", levels: 0, }, ] }, ] }, { id: 70201537, title: "INSPIRATION", url: "", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 70201539, title: "NEW", url: "\/collections\/new-arrivals", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, ].slice(offset); linkList = formatLinks(linkList); const hasChild = linkList.some(link => !!(link.children && link.children.length || link.product0.id)); return `
${link.title}
${link.tag.label}
${second_link.title}
${second_link.tag.label}
${third_links.title}
${third_links.tag.label}
${link.title}
${link.tag.label}
` })()}
Log in
Create an account
${data.data && data.data.count}
Search
BATHROOM
FAUCETS
SHOWER FAUCETS
SMART SHOWER
BATHROOM PARTS
KITCHEN
KITCHEN FAUCETS
SERVICE
Support
Part
INSPIRATION
NEW
${(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.
` })()}
${(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.
` })()}
BATHROOM
BATHROOM
FAUCETS
FAUCETS
Single hole faucets
Widespread Faucets
Centerset Faucets
Bathtub Faucets
Freestanding Tub Faucets
SHOWER FAUCETS
SHOWER FAUCETS
Dual shower heads
Shower Faucets
With body jets
With Sliding bar
SMART SHOWER
SMART SHOWER
With LED
With LED and music
BATHROOM PARTS
BATHROOM PARTS
Towel Rack
KITCHEN
KITCHEN
KITCHEN FAUCETS
KITCHEN FAUCETS
Pull down kitchen faucets
Pot filler kitchen faucets
SERVICE
SERVICE
Support
Support
Contact us
Return & Warranty
Installation help
Part
Part
Replacement
INSPIRATION
NEW
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(); })();
User Manual
User Manual
User Manual
User Manual
User Manual
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:
${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
${data.invalid_msg}
Total:
${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:
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(){ const productData = data.product; let product_change_event = '', mouse_over_event = ' '; mouse_out_event = ''; const product_options = productData.options.filter(Boolean) || []; for (let opt of product_options) { const nameEscape = opt.name.replace(/\/|\\|\s|\'|\"|`|\<|\>/g, '') product_change_event = product_change_event + `quick-shop-selected-variant-${opt.id}.rerender(data=event.selectedValues.${opt.name});`; mouse_out_event = mouse_out_event + `quick-shop-selected-variant-${opt.id}.rerender(data=event.selectData.${opt.name});`; mouse_over_event = mouse_over_event + `@${nameEscape}Mouseover="quick-shop-selected-variant-${opt.id}.rerender(data=event);"`; } 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 = null; 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() { let variantImageShowed = false; const currentProduct = data.product; return (currentProduct.options || []).map((option, index) => { const optionName = option.name || ''; const optionId = option.id || ''; const position = `option${index + 1}`; let isThumbImage = false; if (currentProduct.need_variant_image && !variantImageShowed) { const variantNames = ["color"] || []; for (let i = 0, len = variantNames.length; i < len; i++) { const name = variantNames[i].toLowerCase(); if (name === optionName.toLowerCase()) { isThumbImage = true; variantImageShowed = true; } } } const variantType = "button"; const thumbStyle = "image_with_text"; return `
${optionName}:
${option.values.map((value, idx) => { const selected = data.selectedValues[optionName] == value ? 'checked' : ''; let thumbImage = null; if (isThumbImage) { const variants = currentProduct.variants; for (let i = 0, len = variants.length; i < len; i++) { const variant = variants[i]; if (variant[position] == value && thumbImage == null) { thumbImage = variant.image; break; } } } return `
${value}
` }).join('')}
${optionName}
${option.values.map(value => { const selected = data.selectedValues[optionName] == value ? 'selected' : ''; return `
${value}
` }).join('')}
` }).join(''); }()}
${data.originData && data.originData.value || data.value}