Trainer Rotating and Thrusting Suction Cup Masturbator - Rose Toy

Trainer Rotating and Thrusting Suction Cup Masturbator

$179.13
Color : Black/Purple
Quantity
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);
Description
  • This masturbator has several different functions: rotations or thrusting motions or even both at the same time
  • The transparent jelly sleeve is lined with soft nodules and ribbing
  • The sleeve can be removed from the shell for cleaning
  • It has a flexible 3.5-inch diameter
  • The depth of penetration is 4.75 inches

The Trainer is a top-of-the-line rotating and thrusting masturbator. It has three separate functions for three different kinds of pleasure:

- Rotations

- Thrusting

- Combined rotations and thrusting

Several different modes are available for each function, allowing you to discover hundreds of different stroking styles. This male sex toy will shake up your sexual routine! You can also adjust the speed. You’ll be sure to find the perfect motion to rock your ocean.

A deluxe automatic masturbator

The transparent jelly sleeve is lined with soft nodules and ribbing and has a flexible 3.5-inch diameter. The depth of penetration is 4.75 inches. The sleeve can be removed from the shell for cleaning.

A user’s guide for your Rotating & Thrusting Masturbator

The Trainer masturbator is rechargeable using the USB cable provided. There is no need to use batteries, as the masturbator will stay charged for hours. To recharge the device, simply plug the USB cable into the masturbator and plug the other end into any USB port. Leave your masturbator to charge for at least two hours before using it.

This masturbator has several different functions: rotations or thrusting motions or even both at the same time.

- Hold down the bottom left button for a few seconds to switch your sex toy on or off. You can then choose a function:

- F1 activates the rotations

- F2 activates the vertical thrusting

- F3 activates the simultaneous rotating and thrusting

- You can adjust the speed by pressing the R-S button

Each function features several different modes. Choose a rotation mode by pressing the F1 button: random, regular, alternating, etc. Press the F2 or F3 button to discover the thrusting and rotating/thrusting modes available on this masturbator. For each mode, you can easily adjust the speed by pressing the bottom right R-S button. Pressing the R-S button will increase the speed.

The fantastic features of this rotating and vibrating suction cup masturbator

This masturbator has a very modern, sleek look. A far cry from gaudy, cheap-looking men’s toys, this masturbator looks like it could be a decorative object in your home. It features a suction-cup base that allows to you stick it onto any smooth surface for a hands-free session. Just attach the suction cup onto the toy by using the screw mechanism on its base. To affix the suction cup to a surface, push the lever to “open”, position your toy, and then push the lever to “lock”.

 

SPECIFICATIONS

  • Material: 

    ABS, TPR

  • Color: 

    Black

  • Waterproof: 

    Non-waterproof

  • Type: 

    Vagina

  • Function: 

    Thrusting, Rotating, Moaning

  • Frequency: 

    10

  • Charging Time: 

    180min

  • Run Time: 

    120min

  • Power Type: 

    USB Rechargeable

  • Size: 

    11.6*9in

  • Insertable Length: 

    4.75in

  • Weight: 

    1.9in

  • Packing List: 

    Product x1; USB Cable x1; Instruction x1

Shipping & Delivery

Delivery Time: Processing Time+Shipping Time

Processing Time
Prepare items for shipment, in 1-5 business days normally.

Our estimated delivery dates are based on several factors, including the destination address, the shipping options you've chosen, and how quickly we can assemble and prepare your items for shipment. You can calculate delivery estimates by taking the processing time for your order and adding the delivery time based on the shipping method you've chosen.

For example, if you order a toy, it will need 1-5 business days of processing time and then 9-18 business days of shipping time if you select standard shipping. Therefore, you can expect to receive it in 10-23 business days. And you can expect to receive it in 5-15 business days if you select expedited shipping (4-10 business days). Expedited shipping is available only in the United States, Germany, United Kingdom, and France.

Please use the chart below to help gauge how long it will take to receive your order.

(*There is a different processing time for different items. Once your order is placed, you can check the order shipping info from the online order status page. We will also inform you through your order email.)

*Please note that Shipping time is estimated and commences from the date of shipping, rather than the date of order.

country/region Shipping
United States(except Puerto Rico, Virgin Islands, Guam, Alaska, Hawaii, and the Northern Mariana Islands ), United Kingdom, Germany, France Shipping Flats Free Shipping Standard Shipping Faster Shipping(Applies to US, United Kingdom, Germany, and France orders only)
Costs Shipping Time Costs Shipping time Costs Shipping Time Costs Shipping Time Costs Shipping Time
(Business days) (Business days) (Business days) (Business days) (Business days)
US $9.99 (Orders 34.99 - 68.99USD) 9-18 US $13.99 (Orders 0.00 - 34.98USD) 9-18 US $0(Orders over 69USD) 9-18 US $19.99 7-16 US $29.99 4-10

Kenya, nigeria, South Africa, armenia, Azerbaijan, Bahrain, Bengal, Bhutan, Brunei, Cambodia, India, Indonesia, Israel, Japan, South Korea, Laos, Malaysia, the Philippines, Qatar, Singapore, Thailand, Türkiye, Uzbekistan, Vietnam, Albania, andorra, Austria, Belarus, Belgium, Bulgaria, croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, Hungary, Iceland, Ireland, Italy, latvia, Liechtenstein, Lithuania, Luxembourg, Malta, moldova, monaco, Montenegro, Netherlands, Norway, Poland, Portugal, Romania, san marino, Serbia, Slovakia, slovenia, Spain, Sweden, Switzerland, Anguilla, Bahamas, barbados, Belize, Canada, costa rica, cuba, Curacao, dominica, El Salvador, grenada, Guadeloupe, Mexico, Montserrat, nicaragua, Panama, saint lucia, Australia, new Zealand, Niue, Norfolk, Argentina, Bolivia, Brazil, Chile, Colombia, ecuador, Guyana, Paraguay, Peru, Suriname, Uruguay

Standard Shipping Free Shipping
Costs Shipping Time
(Business days)
Costs Shipping Time
(Business days)
US $9.99 (Orders 0.00 - 68.99USD) 12-20 US $0 (Orders over 69USD) 12-20
United Arab Emirates Standard Shipping Free Shipping
Costs Shipping Time
(Business days)
Costs Shipping Time
(Business days)
US $9.99 25-45 US $0 (Orders over 69USD) 25-45
(Orders 0.00 - 68.99USD)

For countries and regions not listed in the above table, we do not support logistics services for the time being. If you have any questions about this, please contact us for more information: services@rosetoy-official.com 

We are not responsible for late shipments due to invalid addresses, customs clearance procedures, inclement weather, holidays, natural disasters, or carrier delays.

Please keep in mind holidays do not count as business days and should be considered when calculating shipping times.

Sometimes the unexpected delay is caused due to thorough inspection, of stock issues, especially during high-volume periods.

In case of any questions or unexpected delay, you can always contact our customer service.

If you don’t receive the parcel within this period, please get in touch with us.

Note for taxes:

For most countries, our customers do not need to pay import fees, duties, or VAT(Valued Additional Tax). However, some limited countries (especially some European countries such as Germany, Italy, France, and Spain, etc.) may need to pay duties or VAT according to your countries’ levying rules. Freight should be paid by your side and customs clearance should be included to avoid being stuck in customs.

We only charge taxes and fees for the following EU countries:

Germany 19.00%
Italy 22.00%
France 20.00%
Belgium 21.00%
Sweden 25.00%
Netherlands 21.00%
Spain 21.00%
Portugal 23.00%
Austria 20.00%
Ireland 23.00%
Denmark 25.00%
Malta 18.00%
Luxembourg 17.00%
Finland 24.00%
Romania 19.00%
Czech Republic 21.00%
Slovakia 20.00%
Latvia 21.00%
Croatia 25.00%
Slovenia 22.00%
Estonia 20.00%
Cyprus 19.00%
Bulgaria 20.00%
Lithuania 21.00%
Hungary 27.00%
Poland 23.00%

Taxes and fees charged shall be interpreted by the EU organizations.

*Please contact us within 6 months of shipment if the package does not arrive in time, our customer care team (services@rosetoy-official.com) will get back to you within 48 hours. Note that overdue requests may not be accepted.

Note: We will make all efforts to deliver your package on time. However, delays may occur due to invalid addresses, customs clearance issues, public holidays and peak season, etc. Your patience is highly appreciated.

Contact-Us

WANT SOME HELP? WE LOVE HEARING FROM YOU!

Before you send us an email though, check out our FAQ (Frequently Asked Questions) to see if we've already answered your most burning questions there.


The email address: service@rosetoy-official.com


If you do not get our reply email in your inbox, please check your “junk mail” folder or “spam” folder.

Customer Reviews

Here are what our customers say.

Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.