${(function(){ const get_random_six_digits = () => { return Math.random().toString().slice(-6) }; const wholesale_enabled = false; const setting_product_image_display = "100%"; const product_image = data.image; const secondary_image = data.secondImage; const image_width = product_image.width; let image_height = product_image.height; if(setting_product_image_display == '100%'){ image_height = image_width }else if(setting_product_image_display == '133.33%'){ image_height = image_width * 1.3333; }; const product_image_hover_on = false && !!secondary_image.src; const has_save_label = true && ((+data.compare_at_price) > (+data.price)); const is_single_variant = data.variants.length == 1; const min_price_variant_href = (data.min_price_variant && data.min_price_variant.available) ? data.min_price_variant.withinUrl : data.withinUrl; const retail_price_max = data.retail_price_max || data.compare_at_price_max; const THUMBNAILS_MAX_SIZE = 3; const thumbnails = data.thumbVariants.slice(0, THUMBNAILS_MAX_SIZE); const image_wrap_id = 'image_wrap_' + get_random_six_digits(); const image_carousel_id = 'image_carousel_' + get_random_six_digits(); const thumbnails_selector_id = 'thumbnails_selector_' + get_random_six_digits(); const form_id = 'form_' + get_random_six_digits(); const mixed_wholesale = data.mixed_wholesale; return `
${ data.available ? `${ (+data.compare_at_price > +data.price) ? `Save ${ data.off_ratio }% ` : '' }` : "Sold out" }
Mixed Lot
${data.title}
${ data.price_min != data.price_max ? `from
` : `
` }
Add to cart
Add to cart
Choose an option
${variant.title}/
Sold out
` })()}
💐Save Up to 50% Off!
🚚Enjoy Free Shipping Over $59
💐Save Up to 50% Off!
🚚Enjoy Free Shipping Over $59
Log in
Create an account
${data.data && data.data.count}
Newest
Best Seller
Rose Toys
hot
🌪️Rose Clit Sucker
👅Rose Tongue Vibrators
✨Rose 2-in-1 Vibrators
👄Rose Big Mouth
For Her
Vibrators
Dildos
Nipple Massgaers
Lingerie
Rabbit Vibrator
Vibrating Panties
For Him
Masturbation Cup
Prostate Massager
Cock Rings
Penis Pump
For Couple
Strap-on Dildos
Sexy Wear
Vibrators
Clitoral Sucking Vibrators
G-Spot Vibrators
Rabbit Vibrators
Finger Vibrators
Vibrating Panties
Anal Sex Toys
Prosate Massagers
Anal Plugs
Anal Beads
Anal Dildo
Sexual Health
Sex Lubricants
Sex Toy Cleaner
Romance Kits
Affordable Kits
SALE
Flashsale
More
Sex Guides
Track My Order
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 = {"ROSE TOYS":{"label":"hot","bg":"rgba(235, 57, 27, 1)","color":"rgba(255, 255, 255, 1)"},"AFFORDABLE KITS":{"label":"SALE","bg":"#E62405","color":"#FFFFFF"}}; let linkList = [ { id: 74894139, title: "Newest", url: "\/collections\/newest", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 74894141, title: "Best Seller", url: "\/collections\/best-sellers-8a3o", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 74894143, title: "Rose Toys", url: "\/collections\/rose-toys", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "\ud83c\udf2a\ufe0fRose Clit Sucker", url: "\/collections\/rose-sucking-vibrators", target: "", levels: 0, children: [ ] }, { title: "\ud83d\udc45Rose Tongue Vibrators", url: "\/collections\/rose-tongue-vibrators", target: "", levels: 0, children: [ ] }, { title: "\u2728Rose 2-in-1 Vibrators", url: "\/collections\/2-in-1-rose-toys", target: "", levels: 0, children: [ ] }, { title: "\ud83d\udc44Rose Big Mouth", url: "\/collections\/rose-big-mouth", target: "", levels: 0, children: [ ] }, ] }, { id: 74894187, title: "For Her", url: "\/collections\/for-her", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Vibrators", url: "\/collections\/vibrators-joso", target: "", levels: 0, children: [ ] }, { title: "Dildos", url: "\/collections\/shop-all-dildo", target: "", levels: 0, children: [ ] }, { title: "Nipple Massgaers", url: "\/collections\/nipple-toy", target: "", levels: 0, children: [ ] }, { title: "Lingerie", url: "\/collections\/plus-size-lingerie-for-women", target: "", levels: 0, children: [ ] }, { title: "Rabbit Vibrator", url: "\/collections\/rabbit-vibrator", target: "", levels: 0, children: [ ] }, { title: "Vibrating Panties", url: "\/collections\/vibrating-panties", target: "", levels: 0, children: [ ] }, ] }, { id: 74894207, title: "For Him", url: "\/collections\/for-him", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Masturbation Cup", url: "\/collections\/masturbator", target: "", levels: 0, children: [ ] }, { title: "Prostate Massager", url: "\/collections\/prostate-massagers", target: "", levels: 0, children: [ ] }, { title: "Cock Rings", url: "\/collections\/cock-ring", target: "", levels: 0, children: [ ] }, { title: "Penis Pump", url: "\/collections\/penis-pumps", target: "", levels: 0, children: [ ] }, ] }, { id: 74894223, title: "For Couple", url: "\/collections\/for-couples", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Strap-on Dildos", url: "\/collections\/strap-on-dildo", target: "", levels: 0, children: [ ] }, { title: "Sexy Wear", url: "\/collections\/sexy-lingerie", target: "", levels: 0, children: [ ] }, ] }, { id: 74894239, title: "Vibrators", url: "\/collections\/vibrators-joso", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Clitoral Sucking Vibrators", url: "\/collections\/clitoral-sucking-vibrators", target: "", levels: 0, children: [ ] }, { title: "G-Spot Vibrators", url: "\/collections\/g-spot-vibrators", target: "", levels: 0, children: [ ] }, { title: "Rabbit Vibrators", url: "\/collections\/rabbit-vibrator", target: "", levels: 0, children: [ ] }, { title: "Finger Vibrators", url: "\/collections\/finger-vibrators", target: "", levels: 0, children: [ ] }, { title: "Vibrating Panties", url: "\/collections\/vibrating-panties", target: "", levels: 0, children: [ ] }, ] }, { id: 74894279, title: "Anal Sex Toys", url: "\/collections\/anal-sex-toys", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Prosate Massagers", url: "\/collections\/prostate-massagers", target: "", levels: 0, children: [ ] }, { title: "Anal Plugs", url: "\/collections\/anal-plugs", target: "", levels: 0, children: [ ] }, { title: "Anal Beads", url: "\/collections\/anal-beads", target: "", levels: 0, children: [ ] }, { title: "Anal Dildo", url: "\/collections\/anal-dildos", target: "", levels: 0, children: [ ] }, ] }, { id: 74894291, title: "Sexual Health", url: "", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Sex Lubricants", url: "\/collections\/lubricants", target: "", levels: 0, children: [ ] }, { title: "Sex Toy Cleaner", url: "\/collections\/sex-toy-cleaner", target: "", levels: 0, children: [ ] }, { title: "Romance Kits", url: "\/collections\/romance-kits", target: "", levels: 0, children: [ ] }, { title: "Affordable Kits", url: "\/collections\/affordable-kits", target: "", levels: 0, children: [ ] }, ] }, { id: 74894313, title: "Flashsale", url: "https:\/\/www.the-rosetoy.com\/promotions\/flashsale\/57e5563d-10d5-4988-a17a-f2014b23b8c8", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 74894315, title: "More", url: "", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Sex Guides", url: "\/blogs\/blog", target: "", levels: 0, children: [ ] }, { title: "Track My Order", url: "\/account\/order-lookup", target: "", levels: 0, 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}
` })()}
Newest
Best Seller
Rose Toys
hot
🌪️Rose Clit Sucker
👅Rose Tongue Vibrators
✨Rose 2-in-1 Vibrators
👄Rose Big Mouth
For Her
Vibrators
Dildos
Nipple Massgaers
Lingerie
Rabbit Vibrator
Vibrating Panties
For Him
Masturbation Cup
Prostate Massager
Cock Rings
Penis Pump
For Couple
Strap-on Dildos
Sexy Wear
Vibrators
Clitoral Sucking Vibrators
G-Spot Vibrators
Rabbit Vibrators
Finger Vibrators
Vibrating Panties
Anal Sex Toys
Prosate Massagers
Anal Plugs
Anal Beads
Anal Dildo
Sexual Health
Sex Lubricants
Sex Toy Cleaner
Romance Kits
Affordable Kits
SALE
Flashsale
More
Sex Guides
Track My Order
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 = {"ROSE TOYS":{"label":"hot","bg":"rgba(235, 57, 27, 1)","color":"rgba(255, 255, 255, 1)"},"AFFORDABLE KITS":{"label":"SALE","bg":"#E62405","color":"#FFFFFF"}}; let linkList = [ { id: 74894139, title: "Newest", url: "\/collections\/newest", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 74894141, title: "Best Seller", url: "\/collections\/best-sellers-8a3o", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 74894143, title: "Rose Toys", url: "\/collections\/rose-toys", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "\ud83c\udf2a\ufe0fRose Clit Sucker", url: "\/collections\/rose-sucking-vibrators", target: "", levels: 0, children: [ ] }, { title: "\ud83d\udc45Rose Tongue Vibrators", url: "\/collections\/rose-tongue-vibrators", target: "", levels: 0, children: [ ] }, { title: "\u2728Rose 2-in-1 Vibrators", url: "\/collections\/2-in-1-rose-toys", target: "", levels: 0, children: [ ] }, { title: "\ud83d\udc44Rose Big Mouth", url: "\/collections\/rose-big-mouth", target: "", levels: 0, children: [ ] }, ] }, { id: 74894187, title: "For Her", url: "\/collections\/for-her", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Vibrators", url: "\/collections\/vibrators-joso", target: "", levels: 0, children: [ ] }, { title: "Dildos", url: "\/collections\/shop-all-dildo", target: "", levels: 0, children: [ ] }, { title: "Nipple Massgaers", url: "\/collections\/nipple-toy", target: "", levels: 0, children: [ ] }, { title: "Lingerie", url: "\/collections\/plus-size-lingerie-for-women", target: "", levels: 0, children: [ ] }, { title: "Rabbit Vibrator", url: "\/collections\/rabbit-vibrator", target: "", levels: 0, children: [ ] }, { title: "Vibrating Panties", url: "\/collections\/vibrating-panties", target: "", levels: 0, children: [ ] }, ] }, { id: 74894207, title: "For Him", url: "\/collections\/for-him", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Masturbation Cup", url: "\/collections\/masturbator", target: "", levels: 0, children: [ ] }, { title: "Prostate Massager", url: "\/collections\/prostate-massagers", target: "", levels: 0, children: [ ] }, { title: "Cock Rings", url: "\/collections\/cock-ring", target: "", levels: 0, children: [ ] }, { title: "Penis Pump", url: "\/collections\/penis-pumps", target: "", levels: 0, children: [ ] }, ] }, { id: 74894223, title: "For Couple", url: "\/collections\/for-couples", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Strap-on Dildos", url: "\/collections\/strap-on-dildo", target: "", levels: 0, children: [ ] }, { title: "Sexy Wear", url: "\/collections\/sexy-lingerie", target: "", levels: 0, children: [ ] }, ] }, { id: 74894239, title: "Vibrators", url: "\/collections\/vibrators-joso", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Clitoral Sucking Vibrators", url: "\/collections\/clitoral-sucking-vibrators", target: "", levels: 0, children: [ ] }, { title: "G-Spot Vibrators", url: "\/collections\/g-spot-vibrators", target: "", levels: 0, children: [ ] }, { title: "Rabbit Vibrators", url: "\/collections\/rabbit-vibrator", target: "", levels: 0, children: [ ] }, { title: "Finger Vibrators", url: "\/collections\/finger-vibrators", target: "", levels: 0, children: [ ] }, { title: "Vibrating Panties", url: "\/collections\/vibrating-panties", target: "", levels: 0, children: [ ] }, ] }, { id: 74894279, title: "Anal Sex Toys", url: "\/collections\/anal-sex-toys", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Prosate Massagers", url: "\/collections\/prostate-massagers", target: "", levels: 0, children: [ ] }, { title: "Anal Plugs", url: "\/collections\/anal-plugs", target: "", levels: 0, children: [ ] }, { title: "Anal Beads", url: "\/collections\/anal-beads", target: "", levels: 0, children: [ ] }, { title: "Anal Dildo", url: "\/collections\/anal-dildos", target: "", levels: 0, children: [ ] }, ] }, { id: 74894291, title: "Sexual Health", url: "", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Sex Lubricants", url: "\/collections\/lubricants", target: "", levels: 0, children: [ ] }, { title: "Sex Toy Cleaner", url: "\/collections\/sex-toy-cleaner", target: "", levels: 0, children: [ ] }, { title: "Romance Kits", url: "\/collections\/romance-kits", target: "", levels: 0, children: [ ] }, { title: "Affordable Kits", url: "\/collections\/affordable-kits", target: "", levels: 0, children: [ ] }, ] }, { id: 74894313, title: "Flashsale", url: "https:\/\/www.the-rosetoy.com\/promotions\/flashsale\/57e5563d-10d5-4988-a17a-f2014b23b8c8", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 74894315, title: "More", url: "", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Sex Guides", url: "\/blogs\/blog", target: "", levels: 0, children: [ ] }, { title: "Track My Order", url: "\/account\/order-lookup", target: "", levels: 0, 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}
${(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}
Newest
Best Seller
Rose Toys
hot
Rose Toys
🌪️Rose Clit Sucker
👅Rose Tongue Vibrators
✨Rose 2-in-1 Vibrators
👄Rose Big Mouth
For Her
For Her
Vibrators
Dildos
Nipple Massgaers
Lingerie
Rabbit Vibrator
Vibrating Panties
For Him
For Him
Masturbation Cup
Prostate Massager
Cock Rings
Penis Pump
For Couple
For Couple
Strap-on Dildos
Sexy Wear
Vibrators
Vibrators
Clitoral Sucking Vibrators
G-Spot Vibrators
Rabbit Vibrators
Finger Vibrators
Vibrating Panties
Anal Sex Toys
Anal Sex Toys
Prosate Massagers
Anal Plugs
Anal Beads
Anal Dildo
Sexual Health
Sexual Health
Sex Lubricants
Sex Toy Cleaner
Romance Kits
Affordable Kits
SALE
Flashsale
More
More
Sex Guides
Track My Order
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(); })();
Sort by
Recommend
Sort by
Sort by
Recommend
Price, low to high
Price, high to low
Name, A to Z
Name, Z to A
Newest in
Total sales, high to low
Purchases, high to low
Page views, high to low
Rose Sucking Clitoris Sucker Sucking Vibrator
$24.99
$149.75
Add to Cart
8.26 Inches Insertable Realistic Dildo with Suction Cup for Deep Penetration
$25.99
$129.95
Add to Cart
Upgraded 10 Mode Rose Vibrator for G Spot and Clit Stimulation with Magnetic Charging
$39.99
$279.75
Add to Cart
10 Function Rose Tongue Extender Vibrator with Thrusting Dildo for Clitoral and G-spot Pleasure
$49.75
$249.75
Add to Cart
2025 Rose Sex Toy Vibrator Sucker In 4 Gradient Colors Rose Adult Tool for Women G Spot Rose Sex Stimulator
$36.95
$184.75
Add to Cart
Women Side Slit Sexy Nightgown
$14.99
$74.95
Add to Cart
Double Motor Powerful Rabbit Wand for Intense Orgasms
$39.99
$124.95
Add to Cart
M3 App-Controlled Rabbit Vibrator with 10 Vibration Modes for Ultimate Pleasure
$42.99
$174.95
Add to Cart
Rends Rose Toy 2 In 1 Tongue Licking Vibrator And Clitoral Stimulator
$39.99
$149.95
Add to Cart
Rose Blooming Sucking&Vibrating Massager Rod
$28.99
$144.95
Add to Cart
App-Enabled Cock Ring with Tongue Licking and Vibrating Functions for Couples
$28.99
$149.75
Add to Cart
Multi-speed G-Spot Vagina Clitoris Anal Plug Vibrator Dildo
$19.99
$99.95
Add to Cart
Cart
Your shopping bag is empty
Continue shopping
${item.product_title}
${item.options.map(option => option.value).join('/')}
${propertie.name}/${propertie.isImage ? `
View image
` : propertie.value}
Free gift
Mixed Lot
*${item.quantity}
${item.item_text}
${discount_item.title}
(-
)
${(function(){ var total_price = data.total_price; var postageFreeAmount = 59; var freeAmount = postageFreeAmount - total_price; var isFreeShipping = freeAmount <= 0; var rate = Math.min(total_price / postageFreeAmount * 100, 100).toFixed(2); const textArray = ("Spend 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 ").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 ").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `
${text}
`; } return `
${text}
`; }).join(''); }()}
${discount_application.title}:
-
${data.invalid_msg}
Check out
Taxes and shipping calculated at checkout
${(function(){ var total_price = data.total_price; var postageFreeAmount = 59; var freeAmount = postageFreeAmount - total_price; var isFreeShipping = freeAmount <= 0; var rate = Math.min(total_price / postageFreeAmount * 100, 100).toFixed(2); const textArray = ("Spend 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 ").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 ").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 ").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 = ["Specifications","Color","Specification"] || []; 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}