(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();
})();
2 in 1 High-Frequency Rose with Tongue
Mar 24, 2022
by Scarlett Mitchell
The Rose with Tongue is made of high-quality materials, and powerful vibration for your clitoris, vaginal, nipples, and other sensitive parts stimulation, will definitely surprise you. And the use of a curved design, in order to accurately hit your G spot.
Features:
Licking and vibration, double pleasure.
The silicone material is soft, comfortable, and odorless.
Beautiful flower shape, strong privacy.
Low noise, enjoy quiet and soft feelings
Precision motor, more powerful.
USB rechargeable, and charging is available at any time.
Charging method:
Take out the clit licking toy and insert the pin plug of the cable into the DC charging port of it;
Connect the USB interface of the cable to the USB charging plug with voltage 5V and current 1-2A;
The indicator light on the power button flashes slowly when charging;
The charging time is about 70 minutes. The indicator light will remain lit after being fully charged. The rose vibrator can be used for about 75 minutes after being fully charged.
Notes:
For the first operation, it must be fully charged before use.
Please select and use a USB charging plug of national standard with a voltage of 5-5.5V and a current of 1-1.2A for charging.
Do not operate any function button while charging. Do not touch the water.
Operation method:
Take out the clit licking toy, refer to the figure, and put the soft silicone ball on the bottom of it(proper force can be used during the insertion process);
Press and hold the power button for 2 seconds, and the rose clit stimulator will start up with a flash and enter the static standby mode;
In the startup state, press it power button briefly, and it will enter the first licking mode, it can be switched to different licking modes by pressing the power button again, there are 10 different licking modes in the rose vibrator.
In the state of licking, double-press the power button, the tongue stops licking, and the soft silicone ball at the bottom of it starts to vibrate. At this time, short press the power button to switch to different vibration modes;
After use, press the power button for 2 seconds, and it has been shut down.
Please use warm water with mild soap (or toy cleaner) to clean it and dry it. Store it in a cool and dry place.
Sign up and save
Subscribe to get special offers, free giveaways, and once-in-a-lifetime deals.
Thanks for subscribing
Save 10% on your first purchase
Sign up today and we will send you a 10% discount code towards your first purchase.
${function(){
const earnCampaigns = data[0].campaigns;
const memberDetail = data[1].member;
if (!memberDetail) return '';
const closed = data[2];
const hasBirthDayPlan = earnCampaigns.find((item) => item.campaign.event_type === 'enter_birthday');
const hasPhonePlan = earnCampaigns.find((item) => item.campaign.event_type === 'enter_phone_number');
let content = null;
if (hasBirthDayPlan && hasPhonePlan && !memberDetail.birthday && !memberDetail.phone) {
content=`Complete your phone number and birthday to get . `;
} else if (hasBirthDayPlan && !memberDetail.birthday) {
content=`Fill in your birthday to get `;
} else if (hasPhonePlan && !memberDetail.phone) {
content=`Fill in your phone number to get `;
}
return (!closed && content && memberDetail) ? `
You've purchased
${ item.invalid_order_count}
extra
${ item.benefit_package.product_name }
(s). Benefits only apply for the purchase of just one item. Please refund the extra item(s).
View order details >
${function(){
let title = data.campaign.name;
if (data.campaign.event_type === 'share_link') {
let limit_reward_count = Number(data.campaign.campaign_rule.limit_reward_count);
let participation_times = Number(data.participation_info.participation_times);
if (limit_reward_count > 1) {
title = `${title} (${limit_reward_count - participation_times}/${limit_reward_count})`;
}
}
return title;
}()}
${function(){
if (data.campaign.event_type === 'successful_order') {
return `
${function(){
const formatTimeStr = (execution_schedule) => {
const { type, effective_started_at, effective_ended_at, months, days } = execution_schedule;
if (type === 'time_range' && !(effective_started_at && effective_ended_at)) {
return 'Valid for long term';
}
if (type === 'time_range' && effective_started_at && effective_ended_at) {
return `
-
`
}
if (type === 'weekly') {
const time = days.map((d) => {
switch(d) {
case "1": return "Monday";
case "2": return "Tuesday";
case "3": return "Wednesday";
case "4": return "Thursday";
case "5": return "Friday";
case "6": return "Saturday";
case "0": return "Sunday";
}
});
return `Effective ${time} (Weekly)`;
}
if (type === 'monthly') {
const isFullMonth = months.length === 12;
const monthStr = months.map((value) => {
switch(value) {
case "1": return "January";
case "2": return "February";
case "3": return "March";
case "4": return "April";
case "5": return "May";
case "6": return "June";
case "7": return "July";
case "8": return "August";
case "9": return "September";
case "10": return "October";
case "11": return "November";
case "12": return "December";
}
}).join(' ');
const dayStr = days.map((value) => {
switch(value) {
case "1": return "1st";
case "2": return "2nd";
case "3": return "3rd";
case "4": return "4th";
case "5": return "5th";
case "6": return "6th";
case "7": return "7th";
case "8": return "8th";
case "9": return "9th";
case "10": return "10th";
case "11": return "11th";
case "12": return "12th";
case "13": return "13th";
case "14": return "14th";
case "15": return "15th";
case "16": return "16th";
case "17": return "17th";
case "18": return "18th";
case "19": return "19th";
case "20": return "20th";
case "21": return "21st";
case "22": return "22nd";
case "23": return "23rd";
case "24": return "24th";
case "25": return "25th";
case "26": return "26th";
case "27": return "27th";
case "28": return "28th";
case "29": return "29th";
case "30": return "30th";
case "31": return "31st";
}
}).join(' ');
if (isFullMonth) return `Effective ${dayStr} (Monthly)`; // 每月
return `Effective ${dayStr} (Valid only in ${monthStr})`;
}
};
return formatTimeStr(data.campaign.execution_schedule);
}()}
${function(){
if (data.campaign.campaign_rule.order_condition?.min_order_paid === "0") {
return `Order payment of any amount`
} else {
return `Order payment amount ()`
}
}()}
Purchase any item with order amount
The order contains:
Available :
${function(){
return new Intl.NumberFormat().format(data.point.active_amount)
}()}
Frozen :
${function(){
return new Intl.NumberFormat().format(data.point.frozen_amount)
}()}
${function(){
let date = 'Never expires';
if (data.expired_at) {
date = ``;
}
return `Valid until: ${date}`;
}()}
${function(){
const order_id = data.data.order_number || data.data.order_id || '';
const platformMap = {
'facebook': 'Facebook',
'x': 'X (Twitter)',
'pinterest': 'Pinterest'
};
const share_platform = platformMap[data.data.share_platform] || '';
const adjustMap = {
'expiry_compensation': `Points expiration compensation`,
'holiday_bonus': `Festival Rewards`,
'customer_complaint_compensation': `Customer complaint compensation`,
'custom': `${data.data?.reason?.note}`
}
const adjust_type = adjustMap[data.data?.reason?.type] || '';
switch(data.resource_type) {
case 'become_member': return `Bonus for joining the club.`;
case 'enter_phone_number': return `Bonus for completing mobile phone filling`;
case 'enter_birthday': return `Bonus for completing birthday filling`;
case 'successful_order': return `Bonus for completing payment of order ${order_id}`;
case 'order_returned': return `Deduction of for refund of order ${order_id} `;
case 'discount_code_received': return `Deduction of for redeeming ${data.data.campaign_name} benefit`;
case 'coupon_received': return `Deduction of for redeeming ${data.data.coupon_title} coupon`;
case 'expired': return `Expired`;
case 'upgrade_benefit': return `Bonus for member benefits`;
case 'periodic_benefit': return `Bonus for member benefits`;
case 'birthday_benefit': return `Bonus for birthday benefits`;
case 'import_member_points': return `Manual adjustment of points`;
case 'deduction': return `Redeem for off order ${order_id}`;
case 'deduction_returned': return `Refund for order ${order_id}`;
case 'member_migrate': return `System upgrade updates balance`;
case 'share_link': return `Share ${share_platform} reward `;
case 'benefit_package_issued': return `${data.data.name} Issue `;
case 'manual_adjust': return `${adjust_type}`;
case 'compensation': return `Refund points for historical order consumption amount`;
default: '';
}
}()}
${function(){
const {discount_type, obtain_product} = coupon.campaign.reward.discount_code_activity || {};
let value = '';
let unit = '';
if (discount_type === 'fixed_amount' || obtain_product?.obtain_type === 'fixed_amount') {
return `
`;
}
if (discount_type === 'percentage' || obtain_product?.obtain_type === 'percentage') {
return `
`;
}
if (discount_type === 'buy_x_get_y' && obtain_product?.obtain_type === 'free') {
return `
`;
}
if (discount_type === 'free_shipping') {
return `
`;
}
}()}
${function(){
const {discount_type, prerequisite_value, prerequisite_type, obtain_product} = coupon.campaign.reward.discount_code_activity || {};
if (discount_type !== 'buy_x_get_y') {
return `${coupon.campaign.name}`;
}
return '';
}()}
${function(){
const {discount_type, prerequisite_value, prerequisite_type, obtain_product} = coupon.campaign.reward.discount_code_activity || {};
if (discount_type === 'buy_x_get_y') {
const x = prerequisite_value;
const y = obtain_product.product_count;
const obtain_value = obtain_product.obtain_value;
if(obtain_product.obtain_type === 'free') {
if (prerequisite_type === 'quantity') {
return `Buy ${x} Get ${y} Free`;
} else if (prerequisite_type === 'subtotal') {
return `Buy Get ${y} Free`;
}
}
if(obtain_product.obtain_type === 'percentage') {
if (prerequisite_type === 'quantity') {
return `Buy ${x}, get ${y} at ${obtain_value}% OFF`;
} else if (prerequisite_type === 'subtotal') {
return `Buy , get ${y} at ${obtain_value}% OFF`;
}
}
if(obtain_product.obtain_type === 'fixed_amount') {
if (prerequisite_type === 'quantity') {
return `Buy ${x} get ${y} with off each`;
} else if (prerequisite_type === 'subtotal') {
return `Buy get ${y} with off each`;
}
}
}
return '';
}()}
`;
}()}
Get discount code
${function(){
const {discount_type, discount_value, prerequisite_value, prerequisite_type, obtain_product, max_free_shipping} = data[0].campaign?.reward.discount_code_activity || {};
let value = '';
let unit = '';
if (discount_type === 'fixed_amount') {
value = ``;
}
if (discount_type === 'percentage') {
value = `${parseInt(discount_value)}%`;
unit = `OFF`;
}
if (discount_type === 'free_shipping') {
if (max_free_shipping !== -1) {
value = `
FREESHIPPING`;
unit = `Up to `;
} else {
value = `FREE`;
unit = `SHIPPING`;
}
}
if (discount_type === 'buy_x_get_y') {
const x = prerequisite_value;
const y = obtain_product.product_count;
const obtain_value = obtain_product.obtain_value;
if(obtain_product.obtain_type === 'free') {
value = `FREE`;
unit = `PRODUCT`;
}
if(obtain_product.obtain_type === 'percentage') {
value = `${obtain_value}%`;
unit = `OFF`;
}
if(obtain_product.obtain_type === 'fixed_amount') {
value = ``;
}
}
return `
${value}
${unit}
`;
}()}
${data[0].campaign?.name}
${function(){
const { prerequisite_type, prerequisite_value } = data[0].campaign?.reward.discount_code_activity || {};
if (prerequisite_type === 'none') {
return `No threshold`;
}
if (prerequisite_type === 'quantity') {
return `The order is available when it contains at least ${parseInt(prerequisite_value)} items`;
}
if (prerequisite_type === 'subtotal') {
return `Available when the order amount exceeds `;
}
}()}
It will cost to redeem the coupon. Are you sure you want to redeem it?
Get discount code
Congratulations! You have received a discount code
Available when paying for an order
${function(){
const {discount_type, discount_value, prerequisite_value, prerequisite_type, obtain_product, max_free_shipping} = data[0].campaign?.reward.discount_code_activity || {};
let value = '';
let unit = '';
if (discount_type === 'fixed_amount') {
value = ``;
}
if (discount_type === 'percentage') {
value = `${parseInt(discount_value)}%`;
unit = `OFF`;
}
if (discount_type === 'free_shipping') {
if (max_free_shipping !== -1) {
value = `
FREESHIPPING`;
unit = `Up to `;
} else {
value = `FREE`;
unit = `SHIPPING`;
}
}
if (discount_type === 'buy_x_get_y') {
const x = prerequisite_value;
const y = obtain_product.product_count;
const obtain_value = obtain_product.obtain_value;
if(obtain_product.obtain_type === 'free') {
value = `FREE`;
unit = `PRODUCT`;
}
if(obtain_product.obtain_type === 'percentage') {
value = `${obtain_value}%`;
unit = `OFF`;
}
if(obtain_product.obtain_type === 'fixed_amount') {
value = ``;
}
}
return `
${value}
${unit}
`;
}()}
Discount
${function(){
const { discount_code_activity } = data[0].campaign?.reward || data[0].benefit?.reward || {};
const { discount_type, obtain_product, discount_value } = discount_code_activity;
if (discount_type === 'fixed_amount') {
return `
`
}
if (discount_type === 'percentage') {
return `
${parseInt(discount_value)}% OFF
`
}
if (discount_type === 'free_shipping') {
return `
FREE SHIPPING
`
}
return '';
}()}
${function(){
const {discount_type, prerequisite_value, prerequisite_type, obtain_product} = data[0].campaign?.reward.discount_code_activity || data[0].benefit?.reward.discount_code_activity || {};
if (discount_type === 'buy_x_get_y') {
const x = prerequisite_value;
const y = obtain_product.product_count;
const obtain_value = obtain_product.obtain_value;
if(obtain_product.obtain_type === 'free') {
if (prerequisite_type === 'quantity') {
return `Buy ${x} Get ${y} Free`;
} else if (prerequisite_type === 'subtotal') {
return `Buy Get ${y} Free`;
}
}
if(obtain_product.obtain_type === 'percentage') {
if (prerequisite_type === 'quantity') {
return `Buy ${x}, get ${y} at ${obtain_value}% OFF`;
} else if (prerequisite_type === 'subtotal') {
return `Buy , get ${y} at ${obtain_value}% OFF`;
}
}
if(obtain_product.obtain_type === 'fixed_amount') {
if (prerequisite_type === 'quantity') {
return `Buy ${x} get ${y} with off each`;
} else if (prerequisite_type === 'subtotal') {
return `Buy get ${y} with off each`;
}
}
}
return '';
}()}
${function(){
const { prerequisite_type, prerequisite_value, discount_type, obtain_product } = data[0].campaign?.reward.discount_code_activity || data[0].benefit?.reward.discount_code_activity || {};
if (discount_type === 'buy_x_get_y') {
let x_content = '';
let y_content = '';
const x = prerequisite_value;
const {obtain_value, obtain_type} = obtain_product;
if (prerequisite_type === 'quantity') {
x_content = `Purchase the following items for a total of ${x} items`;
} else if (prerequisite_type === 'subtotal') {
x_content = `Purchase the following items for a total of `;
}
if (obtain_type === 'free') {
y_content = `Get for free`;
} else if (obtain_type === 'percentage') {
y_content = `${obtain_value}% OFF on the purchase of the following items`;
} else if (obtain_type === 'fixed_amount') {
y_content = `The following items are discounted by each`;
}
return `
`;
}
if (prerequisite_type === 'none') {
return `No threshold`;
}
if (prerequisite_type === 'quantity') {
return `The order is available when it contains at least ${parseInt(prerequisite_value)} items`;
}
if (prerequisite_type === 'subtotal') {
return `Available when the order amount exceeds `;
}
}()}
${function(){
const {obtain_type, obtain_value, prerequisite_type, prerequisite_value} = data;
if (prerequisite_type === 'quantity') {
return `Purchase the following items for a total of ${prerequisite_value} items`;
} else if (prerequisite_type === 'subtotal') {
return `Purchase the following items for a total of `;
}
if (obtain_type === 'free') {
return `Get for free`;
} else if (obtain_type === 'percentage') {
return `${obtain_value}% OFF on the purchase of the following items`;
} else if (obtain_type === 'fixed_amount') {
return `The following items are discounted by each`;
}
return `Products participating in the points activity`;
}()}
${function(){
let link = '';
if (!item.subscribe_info?.subscribed) {
link = `/products/${ item.benefit_package.product_handle }`;
} else {
link = 'javascript:void(0);';
}
if (!true) {
link = `javascript:void(0);`;
}
return `
${ item.subscribe_info?.subscribed ? 'Subscribed' : `Subscribe` }
`;
}()}
You've purchased
${ item.invalid_order_count}
extra
${ item.benefit_package.product_name }
(s). Benefits only apply for the purchase of just one item. Please refund the extra item(s).
View order details >
After the current paid benefits expire, the system will no longer automatically renew your paid benefits. Are you sure you want to cancel the subscription?
${function(){
if (!data.success) {
return ``
}
return `
Unsubscribed successfully (${s}s)
`;
}()}
Loading...
${function(){
switch(data.status || data) {
case 'COUPON_RECEIVE_INSUFFICIENT_POINTS_ERROR': return `
Insufficient
`;
case 'BIRTHDAY_NOT_COME': return `
Your birthday time has not yet come
`;
case 'SHOW_LOGIN_TIP':
case 'UNAUTHORIZED':
return `You have not yet joined as a member or logged into your account`;
case 'COUPON_RECEIVE_NOT_IN_TIME_ERROR':
case 'COUPON_NOT_FOUND_ERROR':
case 'CAMPAIGN_NOT_FOUND_ERROR': return `Points benefit does not exist. Please refresh the page`;
case 'COUPON_RECEIVE_NOT_ELIGIBLE_ERROR':
case 'COUPON_RECEIVE_UPPER_LIMIT_ERROR':
case 'COUPON_RECEIVE_FAILED_ERROR': return `redemption failed. Please refresh the page and try again.`;
case 'COUPON_RECEIVE_NO_STOCK_ERROR': return `The coupon has been redeemed!`;
case 'LOYALTY_SERVER_UNAUTHORIZED': return `Please log in to your account!`;
case 'LOYALTY_SERVER_CUSTOMER_NOT_FOUND_ERROR': return `User error detected. Please refresh the page and try again~`;
case 'INVALID_PHONE_NUMBER_ERROR': return `Please enter a valid phone`;
case 'BENEFIT_UNSUBSCRIBE_FAILED_ERROR': return `Network error. Please try again!`;
default: return `The network is abnormal or the system is busy, please refresh the page and try again~`;
}
}()}
${function(){
const { discount_code_activity } = data.benefit?.reward || {};
const { discount_type, obtain_product, discount_value } = discount_code_activity || {};
if (discount_type === 'fixed_amount') {
return `
`
}
if (discount_type === 'percentage') {
return `
${parseInt(discount_value)}% OFF
`
}
if (discount_type === 'free_shipping') {
return `
FREE SHIPPING
`
}
return '';
}()}
${function(){
const {discount_type, prerequisite_value, prerequisite_type, obtain_product} = data.benefit?.reward.discount_code_activity || {};
if (discount_type === 'buy_x_get_y') {
const x = prerequisite_value;
const y = obtain_product.product_count;
const obtain_value = obtain_product.obtain_value;
if(obtain_product.obtain_type === 'free') {
if (prerequisite_type === 'quantity') {
return `Buy ${x} Get ${y} Free`;
} else if (prerequisite_type === 'subtotal') {
return `Buy Get ${y} Free`;
}
}
if(obtain_product.obtain_type === 'percentage') {
if (prerequisite_type === 'quantity') {
return `Buy ${x}, get ${y} at ${obtain_value}% OFF`;
} else if (prerequisite_type === 'subtotal') {
return `Buy , get ${y} at ${obtain_value}% OFF`;
}
}
if(obtain_product.obtain_type === 'fixed_amount') {
if (prerequisite_type === 'quantity') {
return `Buy ${x} get ${y} with off each`;
} else if (prerequisite_type === 'subtotal') {
return `Buy get ${y} with off each`;
}
}
}
return '';
}()}
${function(){
const { prerequisite_type, prerequisite_value, discount_type, obtain_product, max_free_shipping } = data.benefit?.reward.discount_code_activity || {};
if (prerequisite_type === 'none' && discount_type === 'free_shipping' && max_free_shipping !== -1) {
return `Up to , no threshold`;
}
if (prerequisite_type === 'quantity' && discount_type === 'free_shipping' && max_free_shipping !== -1) {
return `Up to , the order is available when it contains at least ${parseInt(prerequisite_value)} items`;
}
if (prerequisite_type === 'subtotal' && discount_type === 'free_shipping' && max_free_shipping !== -1) {
return `Up to , available when the order amount exceeds `;
}
if (prerequisite_type === 'none') {
return `No threshold`;
}
if (prerequisite_type === 'quantity') {
return `The order is available when it contains at least ${parseInt(prerequisite_value)} items`;
}
if (prerequisite_type === 'subtotal') {
return `Available when the order amount exceeds `;
}
return '';
}()}
${function(){
if (data.discount_code?.available_times === -1) {
return `Available`;
} else if (data.discount_code?.available_times > 0) {
return `Can be used ${data.discount_code?.available_times} times`;
}
return 'Exhausted';
}()}
`;
}
return '';
}()}
${function(){
const {execution_schedule, trigger_type} = data.benefit.benefit_config;
const { type, date } = execution_schedule || {};
if (data.benefit.type === 'point') {
if (trigger_type === 'onetime') {
return `After you successfully purchase the benefit package, it will be immediately issued to your account.`;
} else if (trigger_type === 'periodic') {
if (type === 'monthly') {
return `After successfully purchasing the benefit package, it will be automatically issued to your account every month.`;
} else if (type === 'weekly') {
return `After you successfully purchase the benefit package, it will be automatically issued to your account every week.`;
} else if (type === 'cycle') {
return `After you successfully purchase the benefit package, it will be automatically issued to your account every ${execution_schedule.days[0]} days.`;
}
} else if (type === 'specific_date') {
return `The benefit will be issued to your account on ${ date } every year.`;
}
} else {
if (trigger_type === 'onetime') {
return `After you successfully purchase the benefit package, it will be immediately issued to your account.`;
} else if (trigger_type === 'periodic') {
if (type === 'monthly') {
return `After you successfully purchase the benefit package, the discount code will be automatically refreshed monthly.`;
} else if (type === 'weekly') {
return `After you successfully purchase the benefit package, the discount code will be automatically refreshed weekly.`;
} else if (type === 'cycle') {
return `After you successfully purchase the benefit package, it will be automatically issued to your account every ${execution_schedule.days[0]} days.`;
}
} else if (type === 'specific_date') {
return `The benefit will be issued to your account on ${ date } every year.`;
}
}
}()}
${data.discount_code?.discount_code}
${function(){
const {execution_schedule, trigger_type} = data.benefit.benefit_config;
const { type, date } = execution_schedule || {};
if (data.benefit.type === 'point') {
if (trigger_type === 'periodic') {
if (type === 'monthly') {
if (data.had_reward) {
return `The benefit of the month has been issued to your account. The next issuance will occur in
`;
} else {
return `Next refresh time:
`;
}
} else if (type === 'weekly') {
if (data.had_reward) {
return `The benefit of the week has been issued to your account. The next issuance will occur in
`;
} else {
return `Next refresh time:
`;
}
}
}
if (trigger_type === 'onetime') {
if (data.had_reward) {
return `The benefit has been issued to your account.`;
} else {
return `Next refresh time:
`;
}
}
if (data.had_reward) {
return `The benefit has been issued to your account. The next issuance will occur in
`;
} else {
return `Next refresh time:
`;
}
} else {
return `Next refresh time:
`;
}
}()}