COLLECTION
Bathroom Collections
FlexiRain
SerenityFlow
ZenithRain
ClassicRain
MultiplePress
Wellness
AuroraSymphony
See All
BATHROOM
Shower Systems
Wall Mounted
Ceiling Mounted
Exposed Shower Set
Handheld Shower Set
Smart Showers With LED
Smart Showers With LCD Temperature Display
See All
Sink Faucets
Widespread Faucets
Centerset Faucets
Vessel Sink Faucets
Single Hole Faucets
Wall Mount Sink Faucet
See All
Bathtub & Shower Faucets
Wall Mount Faucets
Deck Mount Faucets
Freestanding Tub Faucets
See All
Bathroom Accessories
Towel Rack Set
Bidet Sprayers
Shower Head
Handheld
Body Spary
See All
Mirrors
Wall Mirrors
See All
KITCHEN
Kitchen Faucets
Pull Down Faucets
Water Filtration Faucets
Pot Fillers
See All
FURNITURE
SOFA
Bean Bag Chair
Lounge Chairs
Loveseats
Sectionals
Ottomans
Swivel
See All
Interior Door
Barn Door
See All
Outdoor Furniture
Outdoor Dining
See All
NEW & FEATURED
New Arrivals
Bathroom
Kitchen
Furniture
See All
Best Sellers
INSPIRATION
Articles
Bathroom
Kitchen
Furniture
Grandjoy Gallery
More links
Log in
Create an account
${(data.data && data.data.count) > 999 ? '999+' : (data.data && data.data.count)}
${(data.data && data.data.count) > 999 ? '999+' : (data.data && data.data.count)}
Search
COLLECTION
COLLECTION
Bathroom Collections
Bathroom Collections
FlexiRain
SerenityFlow
ZenithRain
ClassicRain
MultiplePress
Wellness
AuroraSymphony
See All
BATHROOM
BATHROOM
Shower Systems
Shower Systems
Wall Mounted
Ceiling Mounted
Exposed Shower Set
Handheld Shower Set
Smart Showers With LED
Smart Showers With LCD Temperature Display
See All
Sink Faucets
Sink Faucets
Widespread Faucets
Centerset Faucets
Vessel Sink Faucets
Single Hole Faucets
Wall Mount Sink Faucet
See All
Bathtub & Shower Faucets
Bathtub & Shower Faucets
Wall Mount Faucets
Deck Mount Faucets
Freestanding Tub Faucets
See All
Bathroom Accessories
Bathroom Accessories
Towel Rack Set
Bidet Sprayers
Shower Head
Handheld
Body Spary
See All
Mirrors
Mirrors
Wall Mirrors
See All
KITCHEN
KITCHEN
Kitchen Faucets
Kitchen Faucets
Pull Down Faucets
Water Filtration Faucets
Pot Fillers
See All
FURNITURE
FURNITURE
SOFA
SOFA
Bean Bag Chair
Lounge Chairs
Loveseats
Sectionals
Ottomans
Swivel
See All
Interior Door
Interior Door
Barn Door
See All
Outdoor Furniture
Outdoor Furniture
Outdoor Dining
See All
NEW & FEATURED
NEW & FEATURED
New Arrivals
New Arrivals
Bathroom
Kitchen
Furniture
See All
Best Sellers
INSPIRATION
INSPIRATION
Articles
Articles
Bathroom
Kitchen
Furniture
Grandjoy Gallery
Log in
function setSearchUrl(searchValue) { return Promise.resolve({ url: '/search?q=' + searchValue }); } exportFunction('setSearchUrl', setSearchUrl);
Top search terms
Wall Mounted Shower Systems
${function() { if (data === undefined || typeof data !== 'string' || data == '') return ''; const searchEmpty = ("Your search for \"{test}\" did not yield any results.").replace('{test}', data); return `
View more
${searchEmpty}
`; }()}
Home
/
Bathroom Inspiration & Buying Guides
Bathroom Inspiration & Buying Guides
${data.author}
${data.title}
${data.excerpt}
Read more
${function() { const force_image_size = "1"; const product_hover_on = true; const product_show_sale_label = false; const product_save_type = "amount"; const badge1 = ""; const badge2 = ""; const badge3 = ""; const product_title_mobile_hide = false; const product_title_style = "hide"; const enable_collection_thumb_image = true; const variantNames = ["finish","color","variant"]; const thumbMaxNum = 4; const suffix_id = Math.random().toFixed(6).slice(-6); const url = data.withinUrl; const productId = data.id; const price = data.price; const productAvailable = data.available; const productVariants = data.variants || []; const images = data.images || []; const image = data.image || {}; const imageWidth = image.width; let imageHeight = image.height; let image2 = data.secondImage; let imageHoverOn = !!image2.src; if (force_image_size !== 'natural') { imageHeight = imageWidth * force_image_size; } let compareAtPrice = data.compare_at_price; let offRatio = data.off_ratio; let discountMaxUrl = url; const showFrom = data.price_min != data.price_max ? true : false; for (let i = 0; i < productVariants.length; i++) { const variant = productVariants[i]; if (variant.price == price && compareAtPrice < variant.compare_at_price) { compareAtPrice = variant.compare_at_price; offRatio = variant.off_ratio; variant.available && (discountMaxUrl = variant.withinUrl); } } const soldOutText = "Sold out"; let soldOn = false; let saleOn = false; if (productAvailable) { if (product_show_sale_label && +price < +compareAtPrice) { saleOn = true; } } else { soldOn = true; } const diffPrice = compareAtPrice - price; const saveLabelContent = product_save_type == 'percent' ? (offRatio + '%') : `
`; let saveText = "Save {off_ratio}"; saveText = saveText.replace('{off_ratio}', saveLabelContent); const productTitle = data.title; const variantValues = []; const showVariants = []; if (data.need_variant_image && enable_collection_thumb_image && variantNames.length > 0) { for (let i = 0; i < (data.options || []).length; i++) { const option = data.options[i]; const optionName = option.name.toLowerCase(); if (variantNames.includes(optionName)) { for (let j = 0; j < productVariants.length; j++) { const variant = productVariants[j]; const value = variant.options[i].value; if (!variantValues.includes(value)) { variantValues.push(value); showVariants.push(variant); } } break; } } } return `
${saleOn ? saveText : soldOutText}
${badge1}
${badge2}
${badge3}
${ "title" === 'subtitle' ? data.brief : data.title }
From
${saveText}
${showVariants.map((item, idx) => { let showMoreHtml = ''; if (idx == thumbMaxNum) { showMoreHtml += `
+${showVariants.length - thumbMaxNum}
`; } return ` ${showMoreHtml}
`; }).join('') }
`; }()}
${function() { const defaultSelectedVariant = data.variants.find(v => v.available) || data.variants[0]; const defaultIndex = !!defaultSelectedVariant ? data.images.findIndex(img => img.src == (defaultSelectedVariant.image && defaultSelectedVariant.image.src)) : -1; const initialSlide = defaultIndex == -1 ? 0 : defaultIndex; const attrs = data.images.length > 1 ? 'slide controls' : ''; return `
`; }()}
${data.title}
${data.brief}
${function() { const defaultSelectedVariant = data.variants.find(v => v.available) || data.variants[0]; return `
${("Save {off_ratio}").replace('{off_ratio}', ("amount") == 'percent' ? defaultSelectedVariant.off_ratio + '%' : `
` )}
-
`; }()}
${function(){ const defaultSelectedVariant = data.variants.find(v => v.available) || data.variants[0]; let status_lan = "Add to cart"; if ((defaultSelectedVariant && !defaultSelectedVariant.available) || (!defaultSelectedVariant && !data.available)) { status_lan = "Sold out"; } return `
Quantity
${status_lan}
Buy now
` }()}
${function() { return data.product.options.map((option, index) => { const optionName = option.name || ''; const optionId = option.id || ''; let isThumbImage = !!option.showThumbImage; const thumbStyle = "image"; const thumbType = isThumbImage ? thumbStyle.replace(/_/g, '-') : 'text'; const variantType = null; const selectedVariantVal = data.selectedOptions && data.selectedOptions.length && data.selectedOptions.find(v => v.name === optionName).value[0] || ''; 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.slice(0, 1).toUpperCase() + optionName.slice(1).toLowerCase()} :
${selectedVariantVal}
${option.values.map((value, idx) => { return `
${value}
${value}
` }).join('')}
`; }).join(''); }()}
${data.value || ''}
${("Save {off_ratio}").replace('{off_ratio}', ("amount") == 'percent' ? data.variant.off_ratio + '%' : `
` )}
-
-
You may also like
${ data == 1 ? ("1 product was added to your cart!") : ("{count} products were added to your cart!").replace('{count}', data) }
${function() { const freeShippingAmount = 499; const totalPrice = data.data.total_price; const diffAmount = freeShippingAmount - totalPrice; const freeShippingText = diffAmount > 0 ? "Spend {amount} more and get free shipping!" : "Your order is free delivery"; return `
${diffAmount > 0 ? freeShippingText.replace('{amount}', `
`) : freeShippingText}
`; }()}
${data.title}
${data.options.map(option => option.value).join(' / ')}
${(data.parsedProperties || []).map((propertie)=>{ if (propertie.isImage){ return `
${propertie.name}:
View image
` }else{ return `
${propertie.name}: ${propertie.value}
` } }).join('')}
${data.product.title}
${data.variant.options.map(option => option.value).join(' / ')}
${(data.product.parsedProperties || []).map((propertie)=>{ if (propertie.isImage){ return `
${propertie.name}:
View image
` }else{ return `
${propertie.name}: ${propertie.value}
` } }).join('')}
${data.data.item_count == 1 ? ("Cart subtotal (1 product)") : ("Cart subtotal ( {count} products)").replace('{count}', data.data.line_items.reduce((res, item) => res + Number(item.quantity), 0))}
${("Save {off_ratio}").replace('{off_ratio}', `
`)}
Taxes and shipping calculated at checkout
View cart
Continue shopping