【With Free Storage Bag】The Original Suction Rose Toy™ in Seven Colors. Chosen by 160,000+ Shoppers

from $38.95 $132.83

2025 Upgraded Rose Clit Sucking Toy Dildo G-spot Vibrator

from $59.99 $172.48

Luminous 2025 Upgraded Rose Sex Toy Clitoral Sucker In Pink

from $37.95 $174.95

10 Speeds Rose Clitoral Stimulator With Licking Vibrator

from $38.99 $85.78

Thrya Rabbit – Dual-Action Rabbit Vibrator with Licking Tip & Deep Thrusting Shaft

from $49.97 $104.98

2025 Upgraded Luminous Original Rose Sucker In Five Colors

from $34.95 $174.75

2 in 1 Rose Sucking & Tongue Licking Black Rose Toy

from $36.99 $184.75

Purple - Rose Clitoral Suction Toy 10 Speeds Waterproof Pleasure for Women

from $33.97 $74.95

KissMaster - Tongue Vibrator 2025 Upgraded App-Controlled Big Mouth Kissing & Suction Vibrator

from $49.95 $149.95

Suctiva – 3-in-1 Sucking, Licking & Vibrating Nipple Toy for Intense Breast Stimulation

from $29.99 $149.95

【With Free Storage Bag】The Original Suction Rose Toy™ in Seven Colors. Chosen by 160,000+ Shoppers

from $38.95 $132.83

2025 Upgraded Rose Clit Sucking Toy Dildo G-spot Vibrator

from $59.99 $172.48

Luminous 2025 Upgraded Rose Sex Toy Clitoral Sucker In Pink

from $37.95 $174.95

10 Speeds Rose Clitoral Stimulator With Licking Vibrator

from $38.99 $85.78

Thrya Rabbit – Dual-Action Rabbit Vibrator with Licking Tip & Deep Thrusting Shaft

from $49.97 $104.98

2025 Upgraded Luminous Original Rose Sucker In Five Colors

from $34.95 $174.75

2 in 1 Rose Sucking & Tongue Licking Black Rose Toy

from $36.99 $184.75

Purple - Rose Clitoral Suction Toy 10 Speeds Waterproof Pleasure for Women

from $33.97 $74.95
View more
class SpzCustomDiscountAtcAction extends SPZ.BaseElement { constructor(element) { super(element); this.xhr_ = SPZServices.xhrFor(this.win); this.product_title = ""; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } async getProductTitle_ (data){ this.product_title = data.product_title; } handleLoading_ (event) { const { type, action } = event; const loadingElementId = '#apps-discount-whole-loading'; const loadingElement = document.querySelector(loadingElementId); if (loadingElement) { SPZ.whenApiDefined(loadingElement).then((api) => { if (action === 'show') { api.show_(); } else { api.close_(); } }); } } // 渲染加购弹窗内容 async renderQuickShop_ (data) { this.handleLoading_({type: 'whole', action: 'show'}); const apply_scenario = data.apply_scenario; const discount_id = data.discount_id; const product_id = data.product_id; const limit_purchase = data.limit_purchase; this.xhr_.fetchJson(`/api/storefront/promotion/landing_page/product?product_id=${product_id}&discount_id=${discount_id}&apply_scenario=${apply_scenario}`, { method: "get", }).then(async(res)=>{ this.handleLoading_({type: 'whole', action: 'close'}); const $quickShop = await SPZ.whenApiDefined(document.querySelector('#apps-discount-quick-view-render')); // 定义默认渲染的子款式 const selectedVariant = res.product.variants.find((v)=> (v.available && v.is_hit_discount)) || res.product.variants[0]; let selectedValues = {}; selectedVariant.options.length && selectedVariant.options.forEach(item => { selectedValues[item.name] = item.value; }) // 默认选中的 子款式、 options res.product.defaultSelectValues = selectedValues; let data = {...res.product, product:res.product, selectedVariant}; data.need_atc = true; data.limit_purchase = limit_purchase; $quickShop.render(data); // 打开加购弹窗 SPZ.whenApiDefined(document.querySelector(`#apps-discount-quick-view`)).then((api)=>{ api.open(); }); }).catch((err)=>{ this.handleLoading_({type: 'whole', action: 'close'}); }) } // 加入购物车 addToCart_(data) { const apply_scenario = data.apply_scenario; const discount_id = data.discount_id; const product_id = data.product_id; this.xhr_.fetchJson(`/api/storefront/promotion/landing_page/product?product_id=${data.product_id}&discount_id=${discount_id}&apply_scenario=${apply_scenario}`, { method: "get", }).then(async(res)=>{ // 单款式加购 const variant_id = res.product.variants[0]?.id; const $productFormInput = document.querySelector(`#apps-discount-product-form-${data.product_id} input[name='variant_id'`); $productFormInput.value = variant_id; SPZ.whenApiDefined(document.querySelector(`#apps-discount-product-form-${data.product_id}`)).then((api)=>{ api.handleAddToCart_(); }); }).catch((err)=> { this.handleLoading_({type: 'whole', action: 'close'}); }) } // 加购弹窗未参与活动 加购按钮不可点击 handleNotHitDiscount_(data) { const $quickShopBody = document.querySelector('#apps-discount-quick-shop-body'); const $limitTip = document.querySelector('.apps_discount_limit_purchase_tip'); //当前子框式未命中活动 if(data.variant.is_hit_discount == false) { $quickShopBody.setAttribute('variantstatus', 'notHitDiscount'); $limitTip && $limitTip.setAttribute('selectedvariantstatus', 'notHitDiscount'); } else { $quickShopBody.setAttribute('variantstatus', ''); $limitTip && $limitTip.setAttribute('selectedvariantstatus', '') } } setupAction_() { this.registerAction('renderQuickShop', (invocation) => { const data = invocation.args; this.renderQuickShop_(data); }); // 加购 this.registerAction('addToCart', (invocation) => { const data = invocation.args; this.addToCart_(data); }); // 子款式 未参与活动 this.registerAction('handleNotHitDiscount', (invocation) => { const data = invocation.args.data; this.handleNotHitDiscount_(data); }); this.registerAction('getCartCount', (invocation) => { //一些老主题还未用spz重构,需要手动触发一次老方法以更新购物车图标的数量 window.$ && $(document).trigger('dj.common.cart.change'); }); this.registerAction('getProductTitle', (invocation) => { const data = invocation.args; this.getProductTitle_(data); }); this.registerAction('handleButton', (invocation) => { const data = invocation.args; window.location.href = this.product_title; }); }; buildCallback() { this.setupAction_(); }; } SPZ.defineElement('spz-custom-discount-atc-action', SpzCustomDiscountAtcAction);
class SpzCustomDiscountBundle extends SPZ.BaseElement { constructor(element) { super(element); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } mountCallback() {} unmountCallback() {} setupAction_() { this.registerAction('showAddToCartToast', () => { const themeAddToCartToastEl = document.querySelector('#add-cart-event-proxy') if(themeAddToCartToastEl) return const toastEl = document.querySelector('#apps-match-drawer-add_to_cart_toast') SPZ.whenApiDefined(toastEl).then((apis) => { apis.showToast("Added successfully"); }); }); } buildCallback() { this.setupAction_(); }; } SPZ.defineElement('spz-custom-discount-toast', SpzCustomDiscountBundle);
class SpzCustomDiscountFlashsale extends SPZ.BaseElement { constructor(element) { super(element); this.xhr_ = SPZServices.xhrFor(this.win); this.discountInfoApi = "\/api\/storefront\/promotion\/home_page\/campaign?discount_id=" this.product_display = {}; this.model = { loading: false, page: 2, limit: 20, total: 0, //已展示的商品数量 params: { count: 0, has_more: false, sort: { by: "recommend", direction: "asc" } } }; this.discount_id= ""; this.image_size="100%"; this.discount_info = {}; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } async getDiscountList() { const data = await this.xhr_.fetchJson(this.discountInfoApi + this.discount_id, { method: "GET", }).then(res => { this.model.params = { count: res.product_info.count, has_more: res.product_info.has_more, sort: { by: "recommend", direction: "asc" } } if(!res.product_info.product.length) return; this.model.total = res.product_info.product.length; this.product_display = res.home_page_info.product_display; this.discount_info = res.discount_info; res.product_info.product.forEach((product) => { product.url = appDiscountUtils.globalizePath(product.url); }) SPZ.whenApiDefined(document.getElementById("appDiscountIndexFlashsale")) .then(apis => { apis.render(res).then(() => { const hiddenArraw = res.home_page_info.banner.enabled ? res.product_info.product.length < 5 : res.product_info.product.length < 6 if(hiddenArraw) { document.querySelectorAll('.app_discount_flashsale_arrow').forEach((item) => { item.style.display="none"; }) } SPZ.whenApiDefined(document.getElementById("flashsaleProductsRender")).then((api) => { res.product_info.product_display = this.product_display; res.product_info.discount_id = this.discount_id; res.product_info.apply_scenario = 1; res.product_info.limit_purchase = this.discount_info.limit_user_product_discount; res.product_info.discount_image_size = this.image_size; api.render(res.product_info,true).then(() => {this.bindEvent_()}); }) }) }) }).catch(err => { console.error(err); }) return data; }; // 获取加载的商品数据,拼接html模板 async loadData(cb) { // 请求数据 this.model.loading = true; //查询活动商品接口 const reqBody = { discount_id: this.discount_id, page: this.model.page, limit: this.model.limit, apply_scenario: 1, sort: this.model.params.sort, sales_channel: { sale_channel_type: "online", sale_channel_id: '192929' } } this.xhr_.fetchJson(`/api/storefront/promotion/landing_page/product/list`, { method: "post", body: reqBody }).then(async(res)=>{ const count = res.count; this.model.params.has_more = res.has_more; this.model.total = this.model.total + res.products.length; if (count > 0) { this.model.page++; if (res.products && res.products.length > 0) { res.products.forEach((product) => { product.url = appDiscountUtils.globalizePath(product.url); }) res.product_display = this.product_display; res.discount_id = this.discount_id; res.apply_scenario = 1; res.limit_purchase = this.discount_info.limit_user_product_discount; res.discount_image_size = this.image_size; // 获取商品列表渲染模板, dom挂载 const $content = document.querySelector(".app_discount_products_list_wrapper"); this.templates_ = SPZServices.templatesForDoc(); this.templates_.renderTemplate(document.querySelector('#apps-discounts_product_list_template'), res).then((el) => { const childNodes = el.querySelectorAll('.as-render-product-item'); if (childNodes && childNodes.length > 0) { $content.append(...childNodes); } }) // 监听load去掉灰色背景 document.dispatchEvent(new CustomEvent('fire.load.img')); // 触发懒加载 cb && cb(products); window.lazyLoadInstance && window.lazyLoadInstance.update(); } } this.model.loading = false; }).catch((err)=>{ console.error(err); this.model.loading = false; }) }; setupAction_() { this.registerAction('shiftMove', (data) => { const $el = document.querySelector(".app_discount_products_list_wrapper"); const action = data.args.direct === "right"; const scrollwidth = action ? $el.offsetWidth : -$el.offsetWidth; $el.scrollBy({ left: scrollwidth, behavior: 'smooth' }); }); this.registerAction('changeFlashSaleLimitPurchase', (invocation) => { const data = invocation.args.data; this.handleFlashsaleTip_(data); }); }; //切换快速加购弹窗内限时促销限购提示 handleFlashsaleTip_(data) { const flashsaleEl = document.querySelector('#quick-shop-flashsale-tip'); SPZ.whenApiDefined(flashsaleEl).then((api) => { api.render(data); }); } bindEvent_() { // 监听滚动,请求数据 const $el = document.querySelector(".app_discount_products_list_wrapper"); if($el) { $el.addEventListener("scroll", this.win.SPZCore.Types.debounce( this.win, () => { const isRightEnd = $el.scrollLeft + $el.offsetWidth + 10 >= $el.scrollWidth; const isLeftEnd = Math.abs($el.scrollLeft) + $el.offsetWidth + 10 >= $el.scrollWidth; const isRTL = document.documentElement.getAttribute('dir') == 'rtl'; const isEnd = isRTL ? isLeftEnd : isRightEnd; if(isEnd && this.model.params.has_more && !this.model.loading && this.model.total < 100) { this.loadData(); } }, 50 )) }; }; buildCallback() { this.setupAction_(); }; mountCallback() { const $el = document.querySelector("#appDiscountFlashsale") this.discount_id = $el.getAttribute('flashsale-id'); this.image_size = $el.getAttribute('image-size'); if(!this.discount_id) return; this.getDiscountList(); }; } SPZ.defineElement('spz-custom-discount-flashsale', SpzCustomDiscountFlashsale);

Heaven – 4-in-1 Automatic Penis Pump Stroker with 7 Sucking & Rotating Modes, Male Masturbator, App-Controlled Version Available

from $89.90 $202.69

Ultra-Realistic Suction Stroker – Deep-Throat Vacuum Seal with 5 Suction Modes & 10 Vibration Patterns

from $69.99 $89.99

【Free Lube】Crimson Veil – Licking Male Masturbator & Penis Pump Stroker with App-Controlled Version Available

from $69.99 $161.75

Edge - Ai Sync Male Masturbator – Automatic Thrusting, Rotating & Licking Stroker For Men With Hand-free Base

from $79.90 $127.85

Shakti Core Deep-Throat Suction Masturbator–10 Suction+10 Vibration Modes & One-Click Climax

from $52.90 $249.95

Heaven – 4-in-1 Automatic Penis Pump Stroker with 7 Sucking & Rotating Modes, Male Masturbator, App-Controlled Version Available

from $89.90 $202.69

Ultra-Realistic Suction Stroker – Deep-Throat Vacuum Seal with 5 Suction Modes & 10 Vibration Patterns

from $69.99 $89.99

【Free Lube】Crimson Veil – Licking Male Masturbator & Penis Pump Stroker with App-Controlled Version Available

from $69.99 $161.75

Edge - Ai Sync Male Masturbator – Automatic Thrusting, Rotating & Licking Stroker For Men With Hand-free Base

from $79.90 $127.85
View more

8.66 Inches Intelligent Heating Swinging Realistic Dildo Vibrator With 9 Vibrating & 3 Thrusting Modes

from $39.97 $189.85

【With Free Lube & Strap】Dynamo – 7.5 Inch 6-in-1 Thrusting Vibrating Heating Dildo with App & Remote Control for Hands-Free Play

from $49.99 $249.95

K25 - 8.66 Inches 3-in-1 Thrusting Black Big Dildo with Strong Suction Cup

from $38.97 $119.95

Tirion - 8.67 Inches 4-in-1 Realistic Thrusting Dildo with Thrusting, Swing and Heating functions

from $34.85 $184.75

8.66 Inches Intelligent Heating Swinging Realistic Dildo Vibrator With 9 Vibrating & 3 Thrusting Modes

from $39.97 $189.85

【With Free Lube & Strap】Dynamo – 7.5 Inch 6-in-1 Thrusting Vibrating Heating Dildo with App & Remote Control for Hands-Free Play

from $49.99 $249.95

K25 - 8.66 Inches 3-in-1 Thrusting Black Big Dildo with Strong Suction Cup

from $38.97 $119.95

Tirion - 8.67 Inches 4-in-1 Realistic Thrusting Dildo with Thrusting, Swing and Heating functions

from $34.85 $184.75
View more

Loopra - Mouth Sucking & Vibrating Cock Ring With Clit Sucker|Dual Pleasure Clitoral and Penis Stimulator for Couples

from $27.99 $124.95

Rosethick – Rose Penis Sleeve Vibrating Cock Ring, Girth-Boosting Dual Rings for Thicker, Longer-Lasting Erections & Clit/G-Spot Stimulation

from $36.97 $113.57

Rose Clit Stmulator & Vibrating Cock Ring Sex Toy For Couples

from $29.97 $54.52

Lipleaf – Tongue Licking Vibrating Cock Ring with App Control, Mouth & Leaf Design for Clitoral and Testicle Pleasure

from $29.95 $34.99

Sensiring - 3-in-1 Vibrating Cock Ring With Tongue Licking Stimulator & App Control

from $27.97 $139.85

Loopra - Mouth Sucking & Vibrating Cock Ring With Clit Sucker|Dual Pleasure Clitoral and Penis Stimulator for Couples

from $27.99 $124.95

Rosethick – Rose Penis Sleeve Vibrating Cock Ring, Girth-Boosting Dual Rings for Thicker, Longer-Lasting Erections & Clit/G-Spot Stimulation

from $36.97 $113.57

Rose Clit Stmulator & Vibrating Cock Ring Sex Toy For Couples

from $29.97 $54.52

Lipleaf – Tongue Licking Vibrating Cock Ring with App Control, Mouth & Leaf Design for Clitoral and Testicle Pleasure

from $29.95 $34.99
View more

Suctiva – 3-in-1 Sucking, Licking & Vibrating Nipple Toy for Intense Breast Stimulation

from $29.99 $149.95

Rosara - Nipple Clamps Rose Toys With 9 Vibrating Modes & Remote Control

from $29.95 $139.85

Petalyn – Rose Nipple Clamp Vibrator, Adjustable Pinch & Remote Control Nipple Toy

from $36.95 $71.27

Squeezing Rose Nipple Toys Vibrating Nipple Clamps With 12 Modes

from $27.99 $139.95

10 Modes & 3 Brush Heads Vibrating Nipple Sucker Women Sex Toy

from $37.97 $76.65

Suctiva – 3-in-1 Sucking, Licking & Vibrating Nipple Toy for Intense Breast Stimulation

from $29.99 $149.95

Rosara - Nipple Clamps Rose Toys With 9 Vibrating Modes & Remote Control

from $29.95 $139.85

Petalyn – Rose Nipple Clamp Vibrator, Adjustable Pinch & Remote Control Nipple Toy

from $36.95 $71.27

Squeezing Rose Nipple Toys Vibrating Nipple Clamps With 12 Modes

from $27.99 $139.95
View more

Bondelle - BDSM Bondage Kit 7pcs, Leather Handcuffs Ankle Cuffs Collar Leash Rope Whip Ball Gag Blindfold, For Couples Beginner Role Play

from $28.99 $41.41

Hooklyn - BDSM Anal Hook Collar Restraint Set, Stainless Steel Anal Trainer With Adjustable Harness For SM Couple Role Play

from $29.99 $38.95

Bondelle - BDSM Bondage Kit 7pcs, Leather Handcuffs Ankle Cuffs Collar Leash Rope Whip Ball Gag Blindfold, For Couples Beginner Role Play

from $28.99 $41.41

Hooklyn - BDSM Anal Hook Collar Restraint Set, Stainless Steel Anal Trainer With Adjustable Harness For SM Couple Role Play

from $29.99 $38.95
View more

Rosetoy Official™ - Rose Sex Toy Shop in the World

Rosetoy Official website offers a wide selection of sexual toy products, including massagers, vibrators, lingerie, and adult novelty items. Our Rose Toys are leading the market in innovation, design, technology, and reputation. We collaborate with renowned brands to ensure product quality and safety.

We often think, "What sets us apart?"

Here, we go beyond simply selling sex toys. Our mission is to empower and educate individuals, liberating them from the shame and guilt often associated with sexual pleasure. Through our blogs, social media posts, and collaborative events with our partners, we are dedicated to dispelling common misconceptions about sex and providing free, comprehensive sex education content.

Blog posts

View all

Latest posts