${(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 | 600; let image_height = product_image.height | 600; if(setting_product_image_display == '100%'){ image_height = image_width }else if(setting_product_image_display == '133.33%'){ image_height = image_width * 1.3333; }; let product_image_hover_on = false; 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) ? `- ${ data.off_ratio }% ` : '' }` : "Sold out" }
Mixed Lot
${data.title}
${ data.price_min != data.price_max ? `from
` : `
` }
+${data.remainInvisibleThumbCount}
` })()}
class SpzCustomLabelScript extends SPZ.BaseElement { constructor(element) { super(element); } isLayoutSupported(layout) { return true; } mountCallback() { const script = this.element; const boxEl = script.closest('.product_snippet_label_area'); const labelEl = boxEl.querySelector('.product_snippet__label'); if(!labelEl) return; const observer = new ResizeObserver((entries) => { const labelEls = boxEl.querySelectorAll('.product_snippet__label'); const offsetWidth = Math.max(...Array.from(labelEls).map(el => el.offsetWidth)); if(offsetWidth>0){ const padding = offsetWidth / 2 + 8 + 'px'; boxEl.style.left = padding; boxEl.style.right = padding; boxEl.style.visibility = 'visible'; } }); observer.observe(labelEl); } } SPZ.defineElement('spz-custom-label-script', SpzCustomLabelScript);
(function () { class SPZCustomEventTrack extends SPZ.BaseElement { constructor(element) { super(element); this.action_ = SPZServices.actionServiceForDoc(this.element); } isLayoutSupported(layout) { return true; } buildCallback() { this.setupAction_(); } track(key, value) { console.log('tracking...', key, value); if(window.sa){ window.sa.track(key, value); }else{ let sa = null; Object.defineProperty(window, 'sa',{ get: function() { return sa; }, set(val){ sa = val; sa.track(key, value); } }) } } setupAction_() { const clickParams = { business_type: 'product_theme', event_name: 'function_click', function_name: 'Farida', plugin_name: 'Farida', template_name: "page", template_type: 3, module: 'online_store', module_type: 'online_store', tab_name: '', card_name: '', event_developer: 'ccbGolumn', event_type: 'click', }; this.registerAction('trackClick', (e) => { const event_info = e.args || {}; this.track('function_click', { ...clickParams, event_info: JSON.stringify(event_info), }); }); this.registerAction('trackExpose', (e) => { const event_info = e.args || {}; this.track('function_expose', { ...clickParams, event_name: 'function_expose', event_type: 'expose', event_info: JSON.stringify(event_info), }); }); } } SPZ.defineElement('spz-custom-event-track', SPZCustomEventTrack); }())
90 Days Free Exchange & Return.
90 Days Free Exchange & Return.
90 Days Price Guaranteed.
90 Days Price Guaranteed.
Log in
Create an account
${data.data && data.data.count}
WOMEN
SILK CLOTHING
Silk Tops
Silk Tanks & Camisoles
Silk Blouses & Shirts
Silk T-shirts
Silk Dresses
Silk Pants
Silk Skirts
Silk Outwears
Silk Two-piece Set
Plus Size
CASHMERE
Cashmere Sweater
Cashmere Hoodie
Cashmere Cardigan
Cashmere Coat
Cashmere Pants
Cashmere Dress
Cashmere Thermal Underwear
Cashmere Robe
Cashmere Set
Cashmere Beanie
Cashmere Scarf
Cashmere Accessories
WOOL
Wool Tops
Wool Cardigans
Wool Coats
Wool Bottoms
LINEN
Linen Tops
Linen Shirt & Blouse
Linen T-shirts
Linen Camisole & Tank
Linen Dresses
Linen Pants
Linen Shorts
Linen Skirt
Linen Homewears
Linen Outwear
SILK LOUNGEWEAR & SLEEPWEAR
Silk Pajamas
Silk Nightgown
Silk Robe & Robe Set
Silk Camisole Set
Silk Travel Set
Embroidered & Personalized
Plus Size
Couple
SILK LINGERIE
Silk Bra & Bralette
Silk Panties
Silk Bra & Panties Set
Silk Socks
Silk Camisole
Silk Leggings
Silk Thermal
SILK ACCESSORIES
Silk Scarf
Silk Scrunchie
Silk Sleep Cap
Silk Eye Mask
Silk Face Covering
Silk Must-Haves For Travel
FEATURED
Plus Size
Embroidered & Personalized
Silk Velvet
Down Jackets
Classic
Luxury
Organic & Eco-Friendly
MEN
SILK CLOTHING
Silk Shirts & T-shirts
Silk Beachwear
Silk Bottom For Men
CASHMERE
Cashmere Sweater
Cashmere Hoodie
Cashmere Cardigan
Cashmere Pants
Cashmere Thermal Underwear
WOOL
Wool Tops
Wool Cardigan
Wool Coats
LINEN
Linen Tops
Linen Shirts
Linen T-shirts
Linen Pants
Linen Shorts
Linen Blazers
SILK LOUNGEWEAR & SLEEPWEAR
Silk Pajamas
Silk Robe
Silk Homewear
Couple
Embroidered & Personalized
SILK LINGERIE
Silk T-shirts
Silk Underwear & Boxers
Silk Socks
Silk Thermal
SILK ACCESSORIES
Silk Scarf
Silk Ties
Silk Must-Haves For Travel
FEATURED
Embroidered & Personalized
Cashmere
Wool
No-Iron
KID
SILK LOUNGEWEAR & SLEEPWEAR
Baby
Girl
Boy
SILK APPAREL
Baby
Girl
Boy
CASHMERE
LINEN COLLECTION
Linen Tops
Linen Dresses
Linen Pants
SILK BEDDING
Silk Quilt
Silk Pillowcase
Silk Blanket
BEDDING
SILK BED LINENS
Silk Fitted Sheets
Silk Flat Sheets
Silk Duvet Covers
SILK BEDDING SET
Silk Sheet Sets
Silk Duvet Cover Sets
SILK PILLOWCASES
Silk Must-Have Pillowcases
Silk Solid Pillowcases
Silk Printed Pillowcases
Silk Kids Pillowcases
Silk European Pillowcases
Silk Shams
SILK BASICS
Silk Pillow
Silk Comforter
FEATURED
Classic
Organic & Eco-Friendly
Luxury
19 Momme
22 Momme
25 Momme
RESOURCES
Gifts Of Sleep Wellness
Silk Sheets Guide
Silk Comforter Guide
Silk Pillowcase Guide
Sleep Better Guide
FEATURED
New Arrival
Best Seller
Outlets
- 40%
- 40%
Spring V-neck Silk Shirt for Women
$119.00
$199.00
+2
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 = "{}"; let linkList = [ { id: 70474645, title: "WOMEN", url: "\/pages\/women", target: "_blank", levels: 2, product0: { id: (null) }, children: [ { title: "SILK CLOTHING", url: "\/collections\/silk-clothing-for-women", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/e5beee50e9df1db48e8c1cd776c84a1e.png" layout="responsive" width="1920" height="960" alt="Silk Clothing For Women" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Silk Tops", url: "\/collections\/silk-tops-for-women", target: "_blank", levels: 0, }, { title: "Silk Tanks & Camisoles", url: "\/collections\/silk-tank-camisole", target: "_blank", levels: 0, }, { title: "Silk Blouses & Shirts", url: "\/collections\/silk-blouse-shirt", target: "_blank", levels: 0, }, { title: "Silk T-shirts", url: "\/collections\/silk-t-shirt-for-women", target: "_blank", levels: 0, }, { title: "Silk Dresses", url: "\/collections\/silk-dresses", target: "_blank", levels: 0, }, { title: "Silk Pants", url: "\/collections\/silk-pants-womens", target: "_blank", levels: 0, }, { title: "Silk Skirts", url: "\/collections\/silk-skirt", target: "_blank", levels: 0, }, { title: "Silk Outwears", url: "\/collections\/outwear-for-women", target: "_blank", levels: 0, }, { title: "Silk Two-piece Set", url: "\/collections\/womens-two-pieces-set-silk-clothing", target: "_blank", levels: 0, }, { title: "Plus Size", url: "\/collections\/plus-size-pajamas-for-women", target: "_blank", levels: 0, }, ] }, { title: "CASHMERE", url: "\/collections\/womens-cashmere-collection", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/f47c66fd703f9b8c39d5a5e34bab26dc.png" layout="responsive" width="1920" height="960" alt="Women's Cashmere Collection" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Cashmere Sweater", url: "\/collections\/womens-cashmere-sweater", target: "_blank", levels: 0, }, { title: "Cashmere Hoodie", url: "\/collections\/cashmere-hoodie-women", target: "_blank", levels: 0, }, { title: "Cashmere Cardigan", url: "\/collections\/cashmere-cardigan-women", target: "_blank", levels: 0, }, { title: "Cashmere Coat", url: "\/collections\/cashmere-wool-coat", target: "_blank", levels: 0, }, { title: "Cashmere Pants", url: "\/collections\/cashmere-pants-women", target: "_blank", levels: 0, }, { title: "Cashmere Dress", url: "\/collections\/cashmere-dress", target: "_blank", levels: 0, }, { title: "Cashmere Thermal Underwear", url: "\/collections\/womens-cashmere-thermal-underwear", target: "_blank", levels: 0, }, { title: "Cashmere Robe", url: "\/collections\/cashmere-robe-womens", target: "_blank", levels: 0, }, { title: "Cashmere Set", url: "\/collections\/cashmere-set", target: "_blank", levels: 0, }, { title: "Cashmere Beanie", url: "\/collections\/cashmere-beanie", target: "_blank", levels: 0, }, { title: "Cashmere Scarf", url: "\/collections\/cashmere-scarf", target: "_blank", levels: 0, }, { title: "Cashmere Accessories", url: "\/collections\/cashmere-accessories", target: "", levels: 0, }, ] }, { title: "WOOL", url: "\/collections\/womens-wool-collection", target: "", levels: 1, cover: ' <spz-img src="//img.staticdj.com/26566b101237a17763c17ec1eca864d6.png" layout="responsive" width="1920" height="960" alt="Women's Wool Collection" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Wool Tops", url: "\/collections\/womens-wool-top", target: "", levels: 0, }, { title: "Wool Cardigans", url: "\/collections\/womens-wool-cardigan", target: "", levels: 0, }, { title: "Wool Coats", url: "\/collections\/wool-coat-for-women", target: "", levels: 0, }, { title: "Wool Bottoms", url: "\/collections\/womens-wool-bottoms", target: "", levels: 0, }, ] }, { title: "LINEN", url: "\/collections\/linen-collection-for-women", target: "", levels: 1, cover: ' <spz-img src="//img.staticdj.com/2d4376fac48b853a4d94df0229e411ea.png" layout="responsive" width="1920" height="960" alt="Linen Collection For Women" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Linen Tops", url: "\/collections\/linen-top-for-women", target: "", levels: 0, }, { title: "Linen Shirt & Blouse", url: "\/collections\/linen-shirt-blouse", target: "", levels: 0, }, { title: "Linen T-shirts", url: "\/collections\/linen-t-shirt-for-women", target: "", levels: 0, }, { title: "Linen Camisole & Tank", url: "\/collections\/linen-camisole-tank", target: "", levels: 0, }, { title: "Linen Dresses", url: "\/collections\/linen-dresses", target: "", levels: 0, }, { title: "Linen Pants", url: "\/collections\/linen-pants-for-women", target: "", levels: 0, }, { title: "Linen Shorts", url: "\/collections\/linen-shorts-for-women", target: "", levels: 0, }, { title: "Linen Skirt", url: "\/collections\/linen-skirt", target: "", levels: 0, }, { title: "Linen Homewears", url: "\/collections\/linen-homewears-for-women", target: "", levels: 0, }, { title: "Linen Outwear", url: "\/collections\/linen-outwear-for-women", target: "", levels: 0, }, ] }, { title: "SILK LOUNGEWEAR & SLEEPWEAR", url: "\/collections\/womens-silk-sleepwear", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/84e6b3735e37cb13bc195448404e4573.png" layout="responsive" width="1920" height="960" alt="Women's Silk Sleepwear" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Silk Pajamas", url: "\/collections\/silk-pajamas-for-women", target: "_blank", levels: 0, }, { title: "Silk Nightgown", url: "\/collections\/silk-nightgown", target: "_blank", levels: 0, }, { title: "Silk Robe & Robe Set", url: "\/collections\/womens-silk-robe", target: "_blank", levels: 0, }, { title: "Silk Camisole Set", url: "\/collections\/silk-camisole-set", target: "_blank", levels: 0, }, { title: "Silk Travel Set", url: "\/collections\/silk-sleepwear-travel-set", target: "_blank", levels: 0, }, { title: "Embroidered & Personalized", url: "\/pages\/customized", target: "_blank", levels: 0, }, { title: "Plus Size", url: "\/collections\/plus-size-pajamas-for-women", target: "", levels: 0, }, { title: "Couple", url: "\/collections\/silk-sleepwear-for-couple", target: "_blank", levels: 0, }, ] }, { title: "SILK LINGERIE", url: "\/collections\/womens-silk-lingerie", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/7d61bb9f19e961e30c673e9894ea22cf.png" layout="responsive" width="1920" height="960" alt="Women's Silk Lingerie" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Silk Bra & Bralette", url: "\/pages\/silk-bra-collection", target: "_blank", levels: 0, }, { title: "Silk Panties", url: "\/collections\/silk-panties", target: "_blank", levels: 0, }, { title: "Silk Bra & Panties Set", url: "\/collections\/silk-bra-and-shorts-set", target: "_blank", levels: 0, }, { title: "Silk Socks", url: "\/collections\/silk-socks-womens", target: "_blank", levels: 0, }, { title: "Silk Camisole", url: "\/collections\/silk-camisole-top", target: "_blank", levels: 0, }, { title: "Silk Leggings", url: "\/collections\/silk-leggings", target: "_blank", levels: 0, }, { title: "Silk Thermal", url: "\/collections\/silk-thermal-underwear-for-women", target: "_blank", levels: 0, }, ] }, { title: "SILK ACCESSORIES", url: "\/collections\/silk-accessories-for-women", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/98cf220ab16815b36098d9991123819c.png" layout="responsive" width="1920" height="960" alt="Silk Accessories For Women" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Silk Scarf", url: "\/pages\/silk-scarf", target: "_blank", levels: 0, }, { title: "Silk Scrunchie", url: "\/collections\/silk-scrunchie", target: "_blank", levels: 0, }, { title: "Silk Sleep Cap", url: "\/collections\/silk-nightcap", target: "_blank", levels: 0, }, { title: "Silk Eye Mask", url: "\/collections\/silk-eye-mask", target: "_blank", levels: 0, }, { title: "Silk Face Covering", url: "\/collections\/silk-face-covering", target: "_blank", levels: 0, }, { title: "Silk Must-Haves For Travel", url: "\/collections\/silk-must-haves-for-travel", target: "_blank", levels: 0, }, ] }, { title: "FEATURED", url: "\/collections\/silk-cashmere-apparel-for-women", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/fb7aa41f7e2d2673a8dabdfa379392b4.png" layout="responsive" width="1920" height="960" alt="Silk Cashmere Apparel For Women" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Plus Size", url: "\/collections\/plus-size-pajamas-for-women", target: "_blank", levels: 0, }, { title: "Embroidered & Personalized", url: "\/pages\/customized", target: "_blank", levels: 0, }, { title: "Silk Velvet", url: "\/collections\/silk-velvet", target: "_blank", levels: 0, }, { title: "Down Jackets", url: "\/collections\/women-down-jackets", target: "", levels: 0, }, { title: "Classic", url: "\/collections\/classic-silk-apparel-for-women", target: "_blank", levels: 0, }, { title: "Luxury", url: "\/collections\/luxury-womens-silk-sleepwear", target: "_blank", levels: 0, }, { title: "Organic & Eco-Friendly", url: "\/collections\/organic-eco-friendly-womens-silk-sleepwear", target: "_blank", levels: 0, }, ] }, ] }, { id: 70474791, title: "MEN", url: "\/pages\/mens", target: "_blank", levels: 2, product0: { id: (null) }, children: [ { title: "SILK CLOTHING", url: "\/collections\/silk-clothing-mens", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/ce8918528c841072d790e8fdd57e2761.png" layout="responsive" width="1920" height="960" alt="Men's Silk Clothing" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Silk Shirts & T-shirts", url: "\/collections\/silk-shirt-mens", target: "_blank", levels: 0, }, { title: "Silk Beachwear", url: "\/collections\/silk-beachwear-for-men", target: "_blank", levels: 0, }, { title: "Silk Bottom For Men", url: "\/collections\/mens-silk-pants", target: "_blank", levels: 0, }, ] }, { title: "CASHMERE", url: "\/collections\/mens-cashmere-collection", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/a56c633d69c78d09609e19e49c2dd25b.png" layout="responsive" width="1920" height="960" alt="Men's Cashmere Collection" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Cashmere Sweater", url: "\/collections\/mens-cashmere-sweater", target: "_blank", levels: 0, }, { title: "Cashmere Hoodie", url: "\/collections\/cashmere-hoodie-men", target: "_blank", levels: 0, }, { title: "Cashmere Cardigan", url: "\/collections\/cashmere-cardigan-men", target: "_blank", levels: 0, }, { title: "Cashmere Pants", url: "\/collections\/cashmere-pants-men", target: "", levels: 0, }, { title: "Cashmere Thermal Underwear", url: "\/collections\/mens-cashmere-underwear", target: "_blank", levels: 0, }, ] }, { title: "WOOL", url: "\/collections\/mens-wool-collection", target: "", levels: 1, cover: ' <spz-img src="//img.staticdj.com/383c200bd399767d39f7a841547e4a5e.png" layout="responsive" width="1920" height="960" alt="Men's Wool Collection" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Wool Tops", url: "\/collections\/mens-cashmere-sweater", target: "", levels: 0, }, { title: "Wool Cardigan", url: "\/collections\/mens-wool-cardigan", target: "", levels: 0, }, { title: "Wool Coats", url: "\/collections\/wool-coat-for-men", target: "", levels: 0, }, ] }, { title: "LINEN", url: "\/collections\/linen-for-men", target: "", levels: 1, cover: ' <spz-img src="//img.staticdj.com/70e48ad3eb13d4b785bb3dc54db85ce1.png" layout="responsive" width="1920" height="960" alt="Linen For Men" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Linen Tops", url: "\/collections\/linen-top-for-men", target: "", levels: 0, }, { title: "Linen Shirts", url: "\/collections\/linen-shirt-for-men", target: "", levels: 0, }, { title: "Linen T-shirts", url: "\/collections\/linen-t-shirt-for-men", target: "", levels: 0, }, { title: "Linen Pants", url: "\/collections\/linen-pants-for-men", target: "", levels: 0, }, { title: "Linen Shorts", url: "\/collections\/linen-shorts-for-men", target: "", levels: 0, }, { title: "Linen Blazers", url: "\/collections\/linen-blazers-for-men", target: "", levels: 0, }, ] }, { title: "SILK LOUNGEWEAR & SLEEPWEAR", url: "\/collections\/mens-silk-sleepwear", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/6dc018da420a61fb963a633d838cf28e.png" layout="responsive" width="1920" height="960" alt="Men's Silk Sleepwear" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Silk Pajamas", url: "\/collections\/mens-silk-pajamas", target: "_blank", levels: 0, }, { title: "Silk Robe", url: "\/collections\/mens-silk-robe", target: "_blank", levels: 0, }, { title: "Silk Homewear", url: "\/collections\/silk-homewear-for-men", target: "_blank", levels: 0, }, { title: "Couple", url: "\/collections\/silk-sleepwear-for-couple", target: "", levels: 0, }, { title: "Embroidered & Personalized", url: "\/pages\/customized", target: "_blank", levels: 0, }, ] }, { title: "SILK LINGERIE", url: "\/collections\/mens-silk-lingerie", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/b2f042cc9e251216887fc2eb63ca5bb6.png" layout="responsive" width="1920" height="960" alt="Men's Silk Lingerie" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Silk T-shirts", url: "\/collections\/mens-silk-t-shirts", target: "_blank", levels: 0, }, { title: "Silk Underwear & Boxers", url: "\/collections\/mens-silk-underwear", target: "_blank", levels: 0, }, { title: "Silk Socks", url: "\/collections\/mens-silk-socks", target: "_blank", levels: 0, }, { title: "Silk Thermal", url: "\/collections\/silk-thermal", target: "_blank", levels: 0, }, ] }, { title: "SILK ACCESSORIES", url: "\/collections\/silk-accessories-for-men", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/63a8c9a675f9b9d1d7966f673f3daf01.png" layout="responsive" width="1920" height="960" alt="Silk Accessories For Men" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Silk Scarf", url: "\/collections\/mens-silk-scarf", target: "_blank", levels: 0, }, { title: "Silk Ties", url: "\/collections\/silk-ties", target: "_blank", levels: 0, }, { title: "Silk Must-Haves For Travel", url: "\/collections\/silk-travel-must-haves-for-men", target: "_blank", levels: 0, }, ] }, { title: "FEATURED", url: "\/collections\/new-for-men", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/ea235453196656f7821569b4f915adbe.png" layout="responsive" width="1920" height="960" alt="New For Men" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Embroidered & Personalized", url: "\/pages\/customized", target: "_blank", levels: 0, }, { title: "Cashmere", url: "\/collections\/mens-cashmere-collection", target: "_blank", levels: 0, }, { title: "Wool", url: "\/collections\/mens-wool-collection", target: "_blank", levels: 0, }, { title: "No-Iron", url: "\/collections\/no-iron-silk-items", target: "", levels: 0, }, ] }, ] }, { id: 70474875, title: "KID", url: "\/pages\/silk-for-kids", target: "_blank", levels: 2, product0: { id: (null) }, children: [ { title: "SILK LOUNGEWEAR & SLEEPWEAR", url: "\/collections\/silk-sleepwear-for-kid", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/256033e36dccea5b39fbf99b70a736a4.png" layout="responsive" width="1920" height="960" alt="Silk Sleepwear For Kid" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Baby", url: "\/collections\/silk-sleepwear-for-baby", target: "_blank", levels: 0, }, { title: "Girl", url: "\/collections\/silk-sleepwear-for-girl", target: "_blank", levels: 0, }, { title: "Boy", url: "\/collections\/silk-sleepwear-for-boy", target: "_blank", levels: 0, }, ] }, { title: "SILK APPAREL", url: "\/collections\/silk-apparel-for-kid", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/a6edce76d687b97ffffda48bfaf35ef2.png" layout="responsive" width="1920" height="960" alt="Silk Apparel For Kid" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Baby", url: "\/collections\/silk-clothing-for-baby", target: "_blank", levels: 0, }, { title: "Girl", url: "\/collections\/silk-apparel-for-girl", target: "_blank", levels: 0, }, { title: "Boy", url: "\/collections\/silk-clothing-for-boy", target: "_blank", levels: 0, }, ] }, { title: "CASHMERE", url: "\/collections\/kids-cashmere", target: "", levels: 0, cover: ' <spz-img src="//img.staticdj.com/1c0fae9a793c8fb2983c58600602bc32.png" layout="responsive" width="1920" height="960" alt="Kids Cashmere" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ ] }, { title: "LINEN COLLECTION", url: "\/collections\/linen-for-kids", target: "", levels: 1, cover: ' <spz-img src="//img.staticdj.com/4017bf77281fbf53d7b422a179b2e53c.png" layout="responsive" width="1920" height="960" alt="Linen For Kids" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Linen Tops", url: "\/collections\/linen-top-for-kids", target: "", levels: 0, }, { title: "Linen Dresses", url: "\/collections\/linen-dress-for-kid", target: "", levels: 0, }, { title: "Linen Pants", url: "\/collections\/linen-pant-for-kids", target: "", levels: 0, }, ] }, { title: "SILK BEDDING", url: "\/collections\/silk-bedding-for-kid", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/5dbf15cc6210e67fa9e299b7438790e8.png" layout="responsive" width="1920" height="960" alt="Silk Bedding For Kid" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Silk Quilt", url: "\/collections\/silk-quilt-for-kid", target: "_blank", levels: 0, }, { title: "Silk Pillowcase", url: "\/collections\/kids-silk-pillowcase", target: "_blank", levels: 0, }, { title: "Silk Blanket", url: "\/collections\/silk-blanket-for-kid", target: "_blank", levels: 0, }, ] }, ] }, { id: 70474911, title: "BEDDING", url: "\/pages\/real-silk-bedding", target: "_blank", levels: 2, product0: { id: (null) }, children: [ { title: "SILK BED LINENS", url: "\/collections\/silk-bed-linens", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/3819156d60eaa17f1a56dfd6a873cb45.png" layout="responsive" width="1920" height="960" alt="Silk Bed Linens" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Silk Fitted Sheets", url: "\/collections\/silk-fitted-sheet", target: "_blank", levels: 0, }, { title: "Silk Flat Sheets", url: "\/collections\/silk-flat-sheet", target: "_blank", levels: 0, }, { title: "Silk Duvet Covers", url: "\/collections\/silk-duvet-cover", target: "_blank", levels: 0, }, ] }, { title: "SILK BEDDING SET", url: "\/collections\/silk-bedding-set", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/818b880d23c98f1ef0cbf31df48c1d0a.png" layout="responsive" width="1920" height="960" alt="Silk Bedding Set" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Silk Sheet Sets", url: "\/collections\/silk-sheet-set", target: "_blank", levels: 0, }, { title: "Silk Duvet Cover Sets", url: "\/collections\/silk-duvet-cover-set", target: "_blank", levels: 0, }, ] }, { title: "SILK PILLOWCASES", url: "\/collections\/silk-pillowcase", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/698d36017b80b257372d7a690545559a.png" layout="responsive" width="1920" height="960" alt="Silk Pillowcase" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Silk Must-Have Pillowcases", url: "\/collections\/silk-must-have-pillowcases", target: "_blank", levels: 0, }, { title: "Silk Solid Pillowcases", url: "\/collections\/solid-pillowcase", target: "_blank", levels: 0, }, { title: "Silk Printed Pillowcases", url: "\/collections\/printed-silk-pillowcase", target: "_blank", levels: 0, }, { title: "Silk Kids Pillowcases", url: "\/collections\/kids-silk-pillowcase", target: "_blank", levels: 0, }, { title: "Silk European Pillowcases", url: "\/collections\/silk-european-pillowcases", target: "_blank", levels: 0, }, { title: "Silk Shams", url: "\/collections\/silk-shams", target: "_blank", levels: 0, }, ] }, { title: "SILK BASICS", url: "\/collections\/silk-bed-basics", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/47c844d79ac239215d3809094591c785.png" layout="responsive" width="1920" height="960" alt="Silk Bed Basics" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Silk Pillow", url: "\/collections\/silk-pillow", target: "_blank", levels: 0, }, { title: "Silk Comforter", url: "\/collections\/silk-comforter", target: "_blank", levels: 0, }, ] }, { title: "FEATURED", url: "\/collections\/silk-bedding", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/1c7b2b0242b7dd7e3f6ff4aae1151e7c.png" layout="responsive" width="1920" height="960" alt="Silk Bedding" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Classic", url: "\/collections\/silk-classic-bedding", target: "_blank", levels: 0, }, { title: "Organic & Eco-Friendly", url: "\/collections\/organic-eco-friendly-silk-bedding", target: "_blank", levels: 0, }, { title: "Luxury", url: "\/collections\/luxury-silk-bedding", target: "_blank", levels: 0, }, { title: "19 Momme", url: "\/collections\/19-momme-silk-bedding", target: "_blank", levels: 0, }, { title: "22 Momme", url: "\/collections\/silk-22-momme-bedding", target: "_blank", levels: 0, }, { title: "25 Momme", url: "\/collections\/silk-25-momme-bedding", target: "_blank", levels: 0, }, ] }, { title: "RESOURCES", url: "\/collections\/silk-bedding-best-seller", target: "_blank", levels: 1, cover: ' <spz-img src="//img.staticdj.com/1a4736f3a3a906fd272d0561a1fde534.png" layout="responsive" width="1920" height="960" alt="Silk Bedding Best Seller" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ { title: "Gifts Of Sleep Wellness", url: "\/blog\/gifts-of-sleep-wellness", target: "_blank", levels: 0, }, { title: "Silk Sheets Guide", url: "\/blog\/something-you-need-to-know-before-you-buy-new-sheets", target: "_blank", levels: 0, }, { title: "Silk Comforter Guide", url: "\/blog\/silk-comforter-guide", target: "_blank", levels: 0, }, { title: "Silk Pillowcase Guide", url: "\/blog\/picking-the-best-silk-pillowcases-buyers-guide", target: "_blank", levels: 0, }, { title: "Sleep Better Guide", url: "\/blog\/the-guide-to-buying-silk-bedding", target: "_blank", levels: 0, }, ] }, ] }, { id: 70474973, title: "FEATURED", url: "\/collections\/new", target: "_blank", levels: 1, product0: { id: ("2f59c1b5-34ff-41c8-9dfd-070fef9c7067") }, children: [ { title: "New Arrival", url: "\/collections\/new-arrivals-c78o", target: "_blank", levels: 0, cover: ' <spz-img src="//img.staticdj.com/5479aa4133a50515d6a77ca4947a1715.png" layout="responsive" width="1920" height="960" alt="New Arrivals" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ ] }, { title: "Best Seller", url: "\/collections\/best-seller-2024", target: "_blank", levels: 0, cover: ' <spz-img src="//img.staticdj.com/8fb0c3ce39e775c390add3455e55c3a5.png" layout="responsive" width="1920" height="960" alt="Best Seller 2024" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ ] }, { title: "Outlets", url: "\/collections\/clearance-sale", target: "_blank", levels: 0, cover: ' <spz-img src="//img.staticdj.com/e59be4d4fe4bf310b06cf1db0432fb1a.png" layout="responsive" width="1920" height="960" alt="Clearance Sale" loading="lazy" class="block mb-2 boder-radius" object-fit="cover" auto-fit="600" ></spz-img> ', children: [ ] }, ] }, ].slice(offset); linkList = formatLinks(linkList); const hasChild = linkList.some(link => !!(link.children && link.children.length || link.product0.id)); for (const item of linkList) { if (item.children?.length > 0) { item.active = 'active'; break; } } return `
${link.title}
${link.tag.label}
${second_link.cover}
${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}
${(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.
` })()}
WOMEN
SILK CLOTHING
Silk Tops
Silk Tanks & Camisoles
Silk Blouses & Shirts
Silk T-shirts
Silk Dresses
Silk Pants
Silk Skirts
Silk Outwears
Silk Two-piece Set
Plus Size
CASHMERE
Cashmere Sweater
Cashmere Hoodie
Cashmere Cardigan
Cashmere Coat
Cashmere Pants
Cashmere Dress
Cashmere Thermal Underwear
Cashmere Robe
Cashmere Set
Cashmere Beanie
Cashmere Scarf
Cashmere Accessories
WOOL
Wool Tops
Wool Cardigans
Wool Coats
Wool Bottoms
LINEN
Linen Tops
Linen Shirt & Blouse
Linen T-shirts
Linen Camisole & Tank
Linen Dresses
Linen Pants
Linen Shorts
Linen Skirt
Linen Homewears
Linen Outwear
SILK LOUNGEWEAR & SLEEPWEAR
Silk Pajamas
Silk Nightgown
Silk Robe & Robe Set
Silk Camisole Set
Silk Travel Set
Embroidered & Personalized
Plus Size
Couple
SILK LINGERIE
Silk Bra & Bralette
Silk Panties
Silk Bra & Panties Set
Silk Socks
Silk Camisole
Silk Leggings
Silk Thermal
SILK ACCESSORIES
Silk Scarf
Silk Scrunchie
Silk Sleep Cap
Silk Eye Mask
Silk Face Covering
Silk Must-Haves For Travel
FEATURED
Plus Size
Embroidered & Personalized
Silk Velvet
Down Jackets
Classic
Luxury
Organic & Eco-Friendly
MEN
SILK CLOTHING
Silk Shirts & T-shirts
Silk Beachwear
Silk Bottom For Men
CASHMERE
Cashmere Sweater
Cashmere Hoodie
Cashmere Cardigan
Cashmere Pants
Cashmere Thermal Underwear
WOOL
Wool Tops
Wool Cardigan
Wool Coats
LINEN
Linen Tops
Linen Shirts
Linen T-shirts
Linen Pants
Linen Shorts
Linen Blazers
SILK LOUNGEWEAR & SLEEPWEAR
Silk Pajamas
Silk Robe
Silk Homewear
Couple
Embroidered & Personalized
SILK LINGERIE
Silk T-shirts
Silk Underwear & Boxers
Silk Socks
Silk Thermal
SILK ACCESSORIES
Silk Scarf
Silk Ties
Silk Must-Haves For Travel
FEATURED
Embroidered & Personalized
Cashmere
Wool
No-Iron
KID
SILK LOUNGEWEAR & SLEEPWEAR
Baby
Girl
Boy
SILK APPAREL
Baby
Girl
Boy
CASHMERE
LINEN COLLECTION
Linen Tops
Linen Dresses
Linen Pants
SILK BEDDING
Silk Quilt
Silk Pillowcase
Silk Blanket
BEDDING
SILK BED LINENS
Silk Fitted Sheets
Silk Flat Sheets
Silk Duvet Covers
SILK BEDDING SET
Silk Sheet Sets
Silk Duvet Cover Sets
SILK PILLOWCASES
Silk Must-Have Pillowcases
Silk Solid Pillowcases
Silk Printed Pillowcases
Silk Kids Pillowcases
Silk European Pillowcases
Silk Shams
SILK BASICS
Silk Pillow
Silk Comforter
FEATURED
Classic
Organic & Eco-Friendly
Luxury
19 Momme
22 Momme
25 Momme
RESOURCES
Gifts Of Sleep Wellness
Silk Sheets Guide
Silk Comforter Guide
Silk Pillowcase Guide
Sleep Better Guide
FEATURED
New Arrival
Best Seller
Outlets
Log in
(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(); })();
Silk Lingerie
Cashmere Collection
Silk Sleepwear
Silk Apparel
Silk Tie
Silk Lingerie
Cashmere Collection
Silk Sleepwear
Silk Apparel
Silk Tie
Sales Best Seller For Men
- 39%
- 39%
Men's Cashmere V Neck Sweater
$109.00
$179.00
+3
- 40%
- 40%
Men's Cashmere Turtleneck Sweater
$119.00
$199.00
+5
- 19%
- 19%
Men's 100 Silk Lightweight Thermal Underwear Set
$129.00
$159.00
- 34%
- 34%
Business Basic Silk Polo Shirts Men's Short Sleeves
$39.00
$59.00
+2
- 30%
- 30%
22 Momme Crew-Neck Men's Silk T-shirt
from
$139.00
$199.00
+2
- 31%
- 31%
No-Iron Wrinkle-Free Men's Silk Shirt Classic Style Long Sleeves
from
$159.00
$229.00
- 25%
- 25%
Men's Cashmere Hoodie
$149.00
$199.00
- 31%
- 31%
Men's Warm Silk Cashmere Midweight Round Neck Base Layer Top
$40.95
$59.00
+3
- 30%
- 30%
Men's Warm Silk Cashmere Midweight Round Neck Thermal Underwear Set
$62.00
$89.00
+3
- 35%
- 35%
100 Men's Silk Thongs
$12.95
$19.95
+3
- 14%
- 14%
Elastic Waistband Solid Men's Silk Briefs
$29.95
$35.00
- 20%
- 20%
Pleated Trim Elastic Men's Silk Briefs
$15.95
$19.95
- 60%
- 60%
Men's Silk Socks Breathable Knitted Style
$5.99
$15.00
+3
- 25%
- 25%
Turtleneck Pure Wool Sweater For Men
$89.00
$119.00
+3
- 40%
- 40%
Business Basic Silk Men's Shirt
$59.00
$99.00
+3
- 39%
- 39%
Men's Cashmere V Neck Sweater
$109.00
$179.00
+3
- 40%
- 40%
Men's Cashmere Turtleneck Sweater
$119.00
$199.00
+5
- 19%
- 19%
Men's 100 Silk Lightweight Thermal Underwear Set
$129.00
$159.00
- 34%
- 34%
Business Basic Silk Polo Shirts Men's Short Sleeves
$39.00
$59.00
+2
- 30%
- 30%
22 Momme Crew-Neck Men's Silk T-shirt
from
$139.00
$199.00
+2
- 31%
- 31%
No-Iron Wrinkle-Free Men's Silk Shirt Classic Style Long Sleeves
from
$159.00
$229.00
- 25%
- 25%
Men's Cashmere Hoodie
$149.00
$199.00
- 31%
- 31%
Men's Warm Silk Cashmere Midweight Round Neck Base Layer Top
$40.95
$59.00
+3
- 30%
- 30%
Men's Warm Silk Cashmere Midweight Round Neck Thermal Underwear Set
$62.00
$89.00
+3
- 35%
- 35%
100 Men's Silk Thongs
$12.95
$19.95
+3
View more
New For Men
- 40%
- 40%
Business Basic Silk Men's Shirt
$59.00
$99.00
+3
Business Basic Plaid Silk Men's Shirt
$119.00
Business Basic Strips Silk Men's Shirt
$119.00
- 30%
- 30%
22 Momme Crew-Neck Men's Silk T-shirt
from
$139.00
$199.00
+2
22 Momme Men's Silk Polo Shirt Long Sleeves
from
$169.00
+2
- 29%
- 29%
22 Momme Classic Button Down Men's Silk Shirt
from
$169.00
$239.00
+2
No-Iron Wrinkle-Free Men's Silk Shirt Crack Printed Short Sleeves
$139.00
No-Iron Wrinkle-Free Men's Silk Shirt Classic Style Long Sleeves
$169.00
+2
Wrinkle-Free Pure Nature Silk Shirt V-Neck Short Sleeves
$169.00
No-Iron Wrinkle-Free Froral Men's Silk Shirt Long Sleeves
$169.00
No-Iron Wrinkle-Free Men's Silk Polo Shirt Points Style
$139.00
No-Iron Wrinkle-Free Men's Silk Polo Shirt Houndstooth Style
$139.00
Denim Casual Men's Silk Pants
$49.00
Denim Men's Silk Pants
$39.00
Formal Men's Wool Pants
$79.00
- 40%
- 40%
Business Basic Silk Men's Shirt
$59.00
$99.00
+3
Business Basic Plaid Silk Men's Shirt
$119.00
Business Basic Strips Silk Men's Shirt
$119.00
- 30%
- 30%
22 Momme Crew-Neck Men's Silk T-shirt
from
$139.00
$199.00
+2
22 Momme Men's Silk Polo Shirt Long Sleeves
from
$169.00
+2
- 29%
- 29%
22 Momme Classic Button Down Men's Silk Shirt
from
$169.00
$239.00
+2
No-Iron Wrinkle-Free Men's Silk Shirt Crack Printed Short Sleeves
$139.00
No-Iron Wrinkle-Free Men's Silk Shirt Classic Style Long Sleeves
$169.00
+2
Wrinkle-Free Pure Nature Silk Shirt V-Neck Short Sleeves
$169.00
No-Iron Wrinkle-Free Froral Men's Silk Shirt Long Sleeves
$169.00
View more
${function() { return `
0 ? (data.index - 1) : (data.total - 1)},animate=true,direct=-1);" data-type="prev">
${(data.index + 1) }/${data.total}
` }()}
${function() { return `
0 ? (data.index - 1) : (data.total - 1)},animate=true,direct=-1);" data-type="prev">
${(data.index + 1) }/${data.total}
` }()}
(function() { const STATUS = { LOADING: 'loading', FINISH: 'finish' }; const RESULT = { EMPTY: 'data-empty' }; class SPZCustomCartSku extends SPZ.BaseElement { renderData = []; /** * add to cart reselect item, and delete process: * 1. record reselect id before show reselect modal * 2. add to cart success, mark `needDeleteReselectRecord` to true * 3. close reselect modal / drawer * 4. spz-cart re-render, triggered mounted event * 5. call refresh */ // mark delete reselect id recordReselectId = null; // mark should delete reselect record after spz-cart mounted event needDeleteReselectRecord = false; refreshLock = false; addToCartSuccess = false; // cache paused refresh data refreshDataCache = []; // cache similar products data, for manual add to cart similarData = []; constructor(element) { super(element); this.xhr_ = SPZServices.xhrFor(this.win); this.action_ = SPZServices.actionServiceForDoc(this.element); } setupAction_() { this.registerAction('refresh', (invocation) => { const data = invocation && invocation.args && invocation.args.data || {}; this.refresh(data); }); this.registerAction('deleteReselect', SPZCore.Types.debounce( this.win, (invocation) => { this.deleteReselect(invocation?.args?.id); }, 200 )); this.registerAction('deleteInvalid', SPZCore.Types.debounce( this.win, (invocation) => { this.deleteInvalid(invocation?.args?.id); }, 200 )); this.registerAction('setReselectRecordId', (invocation) => { this.setReselectRecordId(invocation?.args?.id); }); this.registerAction('clearNeedReselectRecord', (invocation) => { this.clearNeedReselectRecord(); }); this.registerAction('registerDeleteReselectTask', (invocation) => { this.registerDeleteReselectTask(invocation?.args?.data); }); this.registerAction('lockRefresh', (invocation) => { this.lockRefresh(); }); this.registerAction('releaseRefreshLock', (invocation) => { this.releaseRefreshLock(); }); this.registerAction('manualAddToCart', (invocation) => { this.manualAddToCart(invocation?.args?.id); }); this.registerAction('syncSimilarData', (invocation) => { this.syncSimilarData(invocation?.args?.data); }); // DEBUG this.registerAction('log', (invocation) => { const data = invocation && invocation.args && invocation.args.data || {}; console.log('log', invocation); }); } buildCallback() { this.setupAction_(); } isLayoutSupported(layout) { return true; } /** * 数据去重 * @param {Array} data */ uniq_(data) { const result = []; for(let i = 0; i < data.length; i++) { if(!result.includes(data[i])) { result.push(data[i]); } } return result; } checkRefreshLock() { if (this.refreshLock) { return false; } return true; } setLoading(isLoading) { SPZCore.Dom.toggleAttribute(this.element, STATUS.LOADING, isLoading); SPZCore.Dom.toggleAttribute(this.element, STATUS.FINISH, !isLoading); } setDataResult(data) { const isDataEmpty = !data.reselectSkus.length && !data.invalidSkus.length && !data.line_items.length; SPZCore.Dom.toggleAttribute(this.element, RESULT.EMPTY, isDataEmpty); } // 存在多次请求顺序问题 async refresh(_data) { // 接口失败时返回数据不为对象 if (!(typeof _data === 'object' && _data.line_items && _data.line_items.length > 0)) { const newData = { line_items: [], reselectSkus: [], invalidSkus: [], displayInvalidSkus: [] }; this.trigger_('refreshError', newData); this.setLoading(false); return; } if (!this.checkRefreshLock()) { this.setRefreshCache(_data); return; } this.setLoading(true); let data = _data; if (this.needDeleteReselectRecord && this.recordReselectId) { let hasError = false; try { data = await this.deleteReselectRecordBeforeRefresh(_data); } catch (e) { hasError = true; console.error(e); const newData = { ...data, reselectSkus: [], invalidSkus: [], displayInvalidSkus: [] }; this.trigger_('refreshError', newData); this.setLoading(false); this.setDataResult(newData); return; } this.needDeleteReselectRecord = false; if (hasError) { return; } } // 获取失效商品 const invisibleItems = data.ineffectives; // 获取失效商品内仅售罄商品的sku const soldOutItems = invisibleItems.filter(item => item.reason === "line_item_sold_out"); // 通过失效 sku 获取 spu, 注意去重 const soldOutSpuIds = this.uniq_(soldOutItems.map(item => item.product_id)); const querySpuIds = soldOutSpuIds.map(spuId => `ids[]=${spuId}`).join('&'); if (!soldOutSpuIds.length) { const newData = { ...data, reselectSkus: [], invalidSkus: [], displayInvalidSkus: [] }; this.trigger_('refreshSuccess', newData); this.renderData = newData; this.setLoading(false); this.setDataResult(newData); return; } // 请求 spu 下其他 sku 库存 this.xhr_.fetchJson(`/api/product/list?limit=${soldOutSpuIds.length}&${querySpuIds}`) .then(res => { const reselectSkus = []; const invalidSkus = []; // spu 维度展示 const displayInvalidSkus = []; res.data.list.forEach(product => { // spu 匹配, 存在多 sku 情况 const soldOutSkus = soldOutItems.filter(item => item.product_id === product.id); if (!soldOutSkus.length) { return; } // 通过失效 sku 获取 spu 下其他 sku 库存, 存在其他可用库存时标记为 "Reselect" 按钮可用 //const allowReselect = product.variants // .filter(variant => variant.option1 === soldOutProduct.variant.option1 && variant.option2 === soldOutProduct.variant.option2 && variant.option3 === soldOutProduct.variant.option3) // .some(variant => variant.available); // 查询售罄 sku 对应商品是否可加购, 标记为 Reselect 可用项 if (product.available) { reselectSkus.push(...soldOutSkus); // 若商品不可用(全部 sku 售罄), 归纳到失效商品列表 } else { invalidSkus.push(...soldOutSkus); // spu 维度, 仅添加一项 sku displayInvalidSkus.push(soldOutSkus[0]); } }); const newData = { ...data, reselectSkus, invalidSkus, displayInvalidSkus }; this.trigger_('refreshSuccess', newData); this.renderData = newData; this.setLoading(false); this.setDataResult(newData); }) .catch(err => { this.setLoading(false); console.error(err); this.trigger_('refreshError', data); }).finally(() => { }); } async deleteReselect(id, ignoreEmit) { if (!id) { return; } const targetSku = this.renderData.reselectSkus.find(item => item.id === id); try { const res = await this.xhr_.fetchJson(`/api/cart/${targetSku.variant_id}`, { method: 'DELETE', body: { id: targetSku.id, product_id: targetSku.product_id, variant_id: targetSku.variant_id, } }); const newData = { ...this.renderData, reselectSkus: this.renderData.reselectSkus.filter(item => item.id !== id), }; this.renderData = newData; !ignoreEmit && this.trigger_('deleteSuccess', newData); } catch (err) { console.error(err); !ignoreEmit && this.trigger_('deleteError', err); } } deleteInvalid(id) { if (!id) { return; } const targetSku = this.renderData.invalidSkus.find(item => item.id === id); this.xhr_.fetchJson(`/api/cart/${targetSku.variant_id}`, { method: 'DELETE', body: { id: targetSku.id, product_id: targetSku.product_id, variant_id: targetSku.variant_id, } }) .then(res => { const newData = { ...this.renderData, invalidSkus: this.renderData.invalidSkus.filter(item => item.id !== id), displayInvalidSkus: this.renderData.displayInvalidSkus.filter(item => item.id !== id), }; this.trigger_('deleteSuccess', newData); this.renderData = newData; }) .catch(err => { console.error(err); this.trigger_('deleteError', err); }); } // record reselect sku id before show reselect modal setReselectRecordId(id) { if (!id) { return; } this.recordReselectId = id; } async deleteReselectRecordBeforeRefresh(data) { if (!this.recordReselectId) { return; } await this.deleteReselect(this.recordReselectId, true); return { ...data, ineffectives: data.ineffectives.filter(item => item.id !== this.recordReselectId) } } clearNeedReselectRecord() { this.needDeleteReselectRecord = false; } registerDeleteReselectTask(productData) { const targetSku = this.renderData.reselectSkus.find(item => item.id === this.recordReselectId); if (targetSku?.variant_id && productData?.variant.id) { if (targetSku.variant_id === productData?.variant.id) { this.needDeleteReselectRecord = false; return; } } this.needDeleteReselectRecord = true; } // pause cart refresh(trigger by similar products) lockRefresh() { if (this.refreshLock) { return; } this.refreshLock = true; } releaseRefreshLock() { if (!this.refreshLock) { return; } this.refreshLock = false; this.refreshWithCache(); } // direct add_to_cart(trigger by similar products) async manualAddToCart(id) { const target = this.similarData.find(item => item.id === id); this.lockRefresh(); try { const res = await this.xhr_.fetchJson(`/api/cart`, { method: 'POST', body: { note: '', product_id: target.id, quantity: '1', variant_id: target.variants[0].id, refer_info: { source: 'add_to_cart' } } }); const newCartItems = res.data.items; this.setRefreshCache(newCartItems, true); } catch (err) { console.error(err); } } syncSimilarData(data) { this.similarData = data.data; } setRefreshCache(data, patch) { if (patch) { this.refreshDataCache = { ...this.refreshDataCache, line_items: [...this.refreshDataCache.line_items, ...data] }; } else { this.refreshDataCache = data; } } refreshWithCache() { this.refresh(this.refreshDataCache); } mountCallback() { } unmountCallback() { } /** * trigger event * @param {Object} data */ trigger_(name, data) { const event = SPZUtils.Event.create(this.win, `spz-custom-cart-sku.${name}`, { data, }); this.action_.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-cart-sku', SPZCustomCartSku); }())
(function () { class SPZCustomCartTrack extends SPZ.BaseElement { constructor(element) { super(element); this.action_ = SPZServices.actionServiceForDoc(this.element); } isLayoutSupported(layout) { return true; } buildCallback() { this.setupAction_(); } hash(val) { const hashKey = Object.keys(val).sort((a, b) => a - b).reduce((acc, k) => { acc += `{'${k}':'${val[k]}'}`; return acc; }, ''); return hashKey; } trackExtra(key, value) { console.log('trackExtra...', key, value); if (!window.sa) { return; } const hashKey = this.hash(value); let hasExtraInfo = false; if (window.sa.eventInfo && window.sa.eventInfo[key] && window.sa.eventInfo[key].extra_properties) { hasExtraInfo = window.sa.eventInfo[key].extra_properties.some(p => { return hashKey === this.hash(p); }); } if (hasExtraInfo) { return; } window.sa && window.sa.registerExtraInfo(key, value); } delExtraTrack(key, value) { const hashKey = this.hash(value); if (window.sa.eventInfo && window.sa.eventInfo[key] && window.sa.eventInfo[key].extra_properties) { window.sa.eventInfo[key].extra_properties = window.sa.eventInfo[key].extra_properties.filter(p => hashKey !== this.hash(p)); } } track(key, value) { console.log('tracking...', key, value); window.sa && window.sa.track(key, value); } setupAction_() { this.registerAction('registerReselectAtc', () => { this.trackExtra('add_to_cart', { function_name: 'Farida', action_type: 'reselect' }); }); this.registerAction('clearReselectAtc', () => { this.delExtraTrack('add_to_cart', { function_name: 'Farida', action_type: 'reselect' }); }); this.registerAction('registerSimilarAtc', () => { this.trackExtra('add_to_cart', { function_name: 'Farida', action_type: 'similar_product' }); }); this.registerAction('clearSimilarAtc', () => { this.delExtraTrack('add_to_cart', { function_name: 'Farida', action_type: 'similar_product' }); }); const clickParams = { business_type: 'product_plugin', event_name: 'function_click', function_name: 'Farida', plugin_name: 'Farida', template_name: 'cart', template_type: '13', module: 'online_store', module_type: 'online_store', tab_name: '', card_name: '', event_developer: 'ccbken', event_type: 'click', }; this.registerAction('trackDelReselect', () => { this.track('function_click', { ...clickParams, event_info: JSON.stringify({ action_type: 'cart_delete', element_type: 'sku' }) }); }); this.registerAction('trackClickReselect', () => { this.track('function_click', { ...clickParams, event_info: JSON.stringify({ action_type: 'reselect', element_type: 'sku' }) }); }); this.registerAction('trackDelSimilar', () => { this.track('function_click', { ...clickParams, event_info: JSON.stringify({ action_type: 'cart_delete', element_type: 'spu' }) }); }); this.registerAction('trackClickSimilar', () => { this.track('function_click', { ...clickParams, event_info: JSON.stringify({ action_type: 'reselect', element_type: 'spu' }) }); }); this.registerAction('trackOpenSimilar', () => { this.track('function_expose', { ...clickParams, event_name: 'function_expose', event_type: 'expose', event_info: JSON.stringify({ popup_name: 'farida_product_popup' }) }); }); } } SPZ.defineElement('spz-custom-cart-track', SPZCustomCartTrack); }())
Cart ${function() { const show = data && data.line_items && data.line_items.length > 0; const count = show ? data.line_items.reduce((acc, line) => { acc += parseInt(line.quantity); return acc; }, 0) : 0; return `
(${count})
`; }()}
Invalid
(${data.invalidSkus.length})
Sold out
${item.product_title}
${item.options.map(option => option.value).join('/')}
${propertie.name}/${propertie.isImage ? `
View image
` : propertie.value}
Free gift
Mixed Lot
${item.item_text}
Similar products
Similar products
${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}
(-
)
${item.product_title}
${item.options.map(option => option.value).join('/')}
${propertie.name}/${propertie.isImage ? `
View image
` : propertie.value}
Free gift
Mixed Lot
${item.item_text}
Reselect
Reselect product specialfications
Reselect
Reselect product specialfications
Your shopping cart is empty
Continue shopping
${(function(){ var total_price = data.total_price; var postageFreeAmount = 59; var freeAmount = postageFreeAmount - total_price; var isFreeShipping = freeAmount <= 0; var freeShippingBg = !isFreeShipping?'#FFF7EE':'#E5FFE2'; 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:
${function() { const textArray = ("- {{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_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 cost are calculated at checkout
${(function(){ var total_price = data.total_price; var postageFreeAmount = 59; var freeAmount = postageFreeAmount - total_price; var isFreeShipping = freeAmount <= 0; var freeShippingBg = !isFreeShipping?'#FFF7EE':'#E5FFE2'; 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:
${function() { const textArray = ("- {{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_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_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 cost are calculated at checkout
Subtotal:
Save:
-
${discount_application.title}:
-
Total:
Check out
Taxes and shipping cost are 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'); }
${function() { const variantData = data.variant || data.product.variants.find(v => v.available) || data.product.variants[0]; const saveType = null; const productLabelDiscountOn = null; return `
${saveType == 'percentage' ? `-${variantData.off_ratio}%` : `
-
` }
`; }()}
See detail
${function() { let variantImageShowed = false; const currentProduct = data.product; // fix default selected variant let selectedValues = data.selectedValues; if (Object.keys(data.selectedValues.length === 0)) { const selectedVariant = currentProduct.variants.find(v => v.available) || currentProduct.variants[0]; if (selectedVariant) { selectedVariant.options.forEach((option, idx) => { if (!selectedValues[option.name]) { selectedValues[option.name] = []; } if (selectedValues[option.name].indexOf(option.value) === -1) { selectedValues[option.name].push(option.value); } }); } } return (currentProduct.options || []).map((option, index) => { const optionName = option.name || ''; 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 = "dropdown"; 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}
${data.index + 1}/${data.total}
${Array(data.total).fill(0).map((num, index) => { return `
`; }).join('')}
${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() { const selectedVariant = data.variant; const isSoldOut = ((selectedVariant && !selectedVariant.available) || (!selectedVariant && !productData.available)); const statusLan = isSoldOut ? "Sold out" : "Add to cart"; return `
${statusLan}
`; }()}
const summaryStickyRender = document.querySelector('#cart-reselect-drawer-summary-sticky-render'); if (summaryStickyRender) { document.body.style.setProperty('--cart-reselect-drawer-summary-sticky-height', summaryStickyRender.clientHeight + 'px'); }
Back
${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) { product_change_event = product_change_event + `cart-reselect-drawer-selected-variant-${opt.name}.rerender(data=event.selectedValues.${opt.name});`; mouse_out_event = mouse_out_event + `cart-reselect-drawer-selected-variant-${opt.name}.rerender(data=event.selectData.${opt.name});`; mouse_over_event = mouse_over_event + `@${opt.name}Mouseover="cart-reselect-drawer-selected-variant-${opt.name}.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"; const mobSelectedVariant = productData.variants.find(v => v.available) || productData.variants[0]; const mobInitialSlideIndex = productData.images.findIndex((item) => item.src === selectedVariant.image.src); const mobImages = productData.images; const mobImageSize = productData.images.length; const stickyEvent = "cart-reselect-drawer-summary-sticky-render.toggleClass(class='visible', force=false);cart-reselect-drawer-summary-sticky-compensation-container.toggleClass(class='visible', force=false);cart-reselect-drawer-observer.restart();cart-reselect-drawer-summary-sticky-render.rerender(data=event);"; return `
${function() { const force_image_size = 'natural'; const thumbnailPosition = 'below'; const selectedVariant = data.product.variants.find(v => v.available) || data.product.variants[0]; const initialSlideIndex = data.product.images.findIndex((item) => item.src === selectedVariant.image.src); const images = data.product.images; const imageSize = data.product.images.length; return `
${data.product.images.map((item, index0) => { const extra = index0 === initialSlideIndex ? 'ssr size-ratio="2"' : ''; return `
`; }).join('')}
${imageSize > 1 ? `
${images.map((index1) => { return `
`; }).join('')}
` : ''}
${imageSize > 1 ? `
${images.map((imageItem, index1) => { const extra2 = initialSlideIndex == index1 ? 'selected' : ''; return`
`; }).join('')}
` : ''}`; }()}
${productData.title}
${productData.title}
Quantity
Mixed Lot
${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 ? `
` : '
'; } }()}