MOONCOOL Adult Tricycles 7 Speed, 16/20/24/26 inch 3 Wheel Bikes, Three-Wheeled Bicycles Cruise Trike with Shopping Basket for Seniors, Women, Men, Teenager, Kids
MOONCOOL Adult Tricycles 7 Speed, 16/20/24/26 inch 3 Wheel Bikes, Three-Wheeled Bicycles Cruise Trike with Shopping Basket for Seniors, Women, Men, Teenager, Kids
${function() {
const variantData = data.variant || {"id":"01eb7217-7c45-4cd1-8c9b-1b1c2f3e660e","product_id":"38feeeb2-59a2-4bd5-a54a-3994bac2942c","title":"","weight_unit":"lb","inventory_quantity":0,"sku":"JM-P24-ZS","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":295,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"295","retail_price":"0","available":true,"url":"\/products\/mooncool-adult-tricycles-7-speed-16-20-24-26-inch-3-wheel-bikes-three-wheeled-bicycles-cruise-trike-with-shopping-basket-for-seniors-women-men-teenager-kids?variant=01eb7217-7c45-4cd1-8c9b-1b1c2f3e660e","available_quantity":999999999,"options":[],"off_ratio":"0","flashsale_info":{"variant_id":"01eb7217-7c45-4cd1-8c9b-1b1c2f3e660e","product_id":"","quantity":0,"discount_id":"","limit_time":0,"limit_buy":0,"user_limit_buy":0,"discount_sales":0,"discount_sales_rate":"","discount_stock":0,"ends_at":0,"starts_at":0,"allow_oversold":"","allocation_method":"","price":"295","compare_at_price":"","discount_price":"295","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"0","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":0};
const saveType = null;
const productSaveLabel = null;
return `
-
${ variantData.off_ratio }%
`; }()}
${function(){
return `
${data.starNum}/${data.starTotal}
`;
}()}
${function(){
return `
${data.showStarText === 'true' ? `
${data.starNum}/${data.starTotal}
` : ''}
`;
}()}
const TAG = 'spz-custom-revue-star';
class SPZCustomRevueStar extends SPZ.BaseElement {
constructor(element) {
super(element);
}
static deferredMount() {
return false;
}
buildCallback = () => {
this.action_ = SPZServices.actionServiceForDoc(this.element);
this.templates_ = SPZServices.templatesForDoc(this.element);
this.xhr_ = SPZServices.xhrFor(this.win);
this.starNum = this.element.getAttribute('starNum');
this.starTotal = this.element.getAttribute('starTotal');
this.showStarText = this.element.getAttribute('showStarText');
this.starColor = this.element.getAttribute('color');
this.interact = this.element.getAttribute('interact');
this.starSize = this.element.getAttribute('starSize') || 14;
}
mountCallback = () => {
this.doRender_({
starTotal: this.starTotal,
totalArray: Array.from({ length: Number(this.starTotal) }, (v, k) => k + 1),
starNum: this.starNum,
showStarText: this.showStarText,
starColor: this.starColor,
starSize: this.starSize
}).then(() => {
if (this.interact) {
this.addEventListeners_();
}
});
}
addEventListeners_ = () => {
const stars = document.querySelectorAll('.revue-star__star');
stars.forEach(star => {
star.addEventListener('click', event => {
const starEl = star.closest('.revue-star__star');
const starIndex = Number(starEl.dataset.index);
let isHalf = event.offsetX < star.offsetWidth / 2;
// rtl
if (document.documentElement.getAttribute('dir') === 'rtl') {
isHalf = event.offsetX > star.offsetWidth / 2;
}
const starValue = isHalf ? starIndex - 0.5 : starIndex;
this.starClickHandler_({ value: starValue });
});
});
}
renderStar = () => {
const isRtl = document.documentElement.getAttribute('dir') === 'rtl';
const stars = this.element.querySelectorAll('.revue-star__star');
stars.forEach((star, i) => {
const starIndex = i + 1;
const starEl = star.querySelector('svg:nth-child(2)');
const isHalf = this.starNum % 1 > 0 && Math.ceil(this.starNum) === starIndex;
const isSolid = starIndex <= Math.ceil(this.starNum);
starEl.style.display = isSolid ? 'block' : 'none';
if (isHalf) {
if (isRtl) {
// RTL布局下,如果是半星,显示星星的右半边
starEl.style.clipPath = `polygon(50% 0, 100% 0, 100% 100%, 50% 100%)`;
} else {
// LTR布局下,如果是半星,显示星星的左半边
starEl.style.clipPath = `polygon(0 0, 50% 0, 50% 100%, 0 100%)`;
}
} else {
starEl.style.clipPath = `polygon(0 0, 100% 0, 100% 100%, 0 100%)`
}
});
const showCountEle = this.element.querySelector('#revue-star-show-count');
showCountEle && SPZ.whenApiDefined(showCountEle).then((api) => {
api.render({ starNum: this.starNum, starTotal: this.starTotal });
});
}
doRender_ = (data) => {
return this.templates_
.findAndRenderTemplate(this.element, { starSize: this.starSize, ...data }, null)
.then((el) => {
const children = this.element.querySelector('*:not(template)');
children && SPZCore.Dom.removeElement(children);
this.element.appendChild(el);
})
.then(() => {
this.starNum = data.starNum;
this.renderStar();
});
}
starClickHandler_ = (event) => {
this.starNum = event.value;
this.renderStar();
this.triggerEvent_('change', { value: event.value });
}
triggerEvent_(name, data) {
const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {});
this.action_.trigger(this.element, name, event);
}
isLayoutSupported(layout) {
return layout == SPZCore.Layout.CONTAINER;
}
}
SPZ.defineElement(TAG, SPZCustomRevueStar)
()
try {
const productId = window.SHOPLAZZA.meta.page.resource_id;
const productType = `default`;
const getProductReviews = (star_least) =>
fetch('/api/comment/count-star-multi',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
product_id: [productId],
star_least: star_least || 1,
}),
}).then(res => res.json());
try {
const section = document.querySelector('#revue-product-star');
if(productType === "gift_card" && section) {
section.style.display = 'none';
}
} catch(e) {
console.log(e);
window.addEventListener('load', () => {
try {
const section = document.querySelector('#revue-product-star');
if(productType=== "gift_card" && section) {
section.style.display = 'none';
}
} catch(e) {
console.log(e)
}
})
}
const getReviewsConfig = async () => {
let data = {};
const url = new URL(window.location.href);
const preview_theme_id = url.searchParams.get('preview_theme_id');
const commentConfig = await fetch('/api/comment-config', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
}
}).then(res => res.json());
data = commentConfig.data;
const themeConfig = await fetch(`/api/comment-config?theme_id=${preview_theme_id || ''}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
}
}).then(res => res.json());
if (themeConfig?.data && themeConfig.data.star_color) {
data.star_color = themeConfig.data.star_color;
}
if (preview_theme_id) {
data.star_least = window.apps_global && apps_global.reviews && apps_global.reviews.preview_star_least;
} else if (themeConfig?.data && themeConfig.data.product_settings) {
data.star_least = themeConfig.data.product_settings.star_least;
}
return data;
};
if (productId && window.SHOPLAZZA.meta.page.template_type == 1) {
getReviewsConfig().then(async res => {
const config = res;
let review = await getProductReviews(config.star_least);
review = review.data[productId];
if (!config.open_status || (!review.comment_avg_star && !config.show_no_comment_star)) return;
const render = async () => {
const section = document.querySelector('#revue-product-star');
const starComponent = document.querySelector('#revue-product-star-component');
const count = document.querySelector('#revue-product-star-count');
count.innerText = review.published_count;
const api = await SPZ.whenApiDefined(starComponent);
api.doRender_({
starNum: review.comment_avg_star,
starTotal: 5,
showStarText: false,
starColor: config.star_color,
totalArray: Array.from({ length: 5 }, (v, k) => k + 1)
});
section.style.opacity = 1;
}
render();
document.addEventListener('dj.editor.update', render);
});
}
} catch (e) {console.warn(e)};
${function() {
const minInventory = parseInt('7');
const maxInventory = parseInt('10');
const randomInventory = Math.round(Math.random() * (maxInventory - minInventory)) + minInventory;
const customText = "Only {stock} item(s) left in stock!".replace(/\{stock\}/g, '' + randomInventory + '');
const barWidth = (randomInventory / maxInventory) * 100 + '%';
return `
`;
}()}
Product was out of stock.
Enjoy free shipping on every order, delivered to your doorstep no matter where you are in the world.
Shop with confidence with our hassle-free returns policy, ensuring you love what you buy.
Designed with the planet in mind, all our products are committed to sustainable practices.
Your payment information is always protected with our advanced, encrypted checkout security.
MOONCOOL Adult Tricycle 7 Speed, Three Wheel Bikes for Seniors, Adults, Teenager, Kids, Women, Men, 16/20/24/26-Inch Wheels, Cargo Basket, Multiple Colors. Our tricycles are made of high-quality iron. PLEASE MAKE SURE THE SIZE before purchasing: 16" wheel suitable for rider height 3'9" - 4'9" . (Suitable for age: 6-11 years old), 20" wheel suitable for rider height: 4'8" - 5'6", 24" wheel suitable for rider height: 4'11" - 5'10", 26" wheel suitable for rider height: 5'3" - 6'2". MOONCOOL tricycle has a large rear basket, load up the conveniently basket with groceries, supplies, or whatever suits your daily shopping while staying in shape. MOONCOOL Adults Tricycles are equipped with user manual, assembly tool, water bottle cage. Perfect for leisure, shopping, exercise or any time/place you want. You can ride safely and comfortably on town streets, beaches or bike lanes.
-
SIZE REFERENCE: 16" wheel suitable for rider height 3'9" - 4'9" . (Suitable for age: 6-11 years old), 20" wheel suitable for rider height: 4'8" - 5'6", 24" wheel suitable for rider height: 4'11" - 5'10", 26" wheel suitable for rider height: 5'3" - 6'2". Our Adults Tricycles are equipped with user manual, assembly tool, water bottle cage.
-
STURDY DESIGN: Sturdy steel construction supports capacity up to 350 lbs. 3-wheeler design means you'll always have a consistent ride and a frame that'll stay sturdy and steady. (16 INCH Supports rider and cargo combined weight up to 150 lbs.)
-
7 CONVENIENT SPEEDS: Our full-sized tricycle for adults is perfect for those who want to enjoy the outdoors. It features a 7-speed drivetrain, front linear pull brake, and rear expander brake to create a fun ride that's simple to use. (16 INCH WITH 1-SPEED)
-
LARGE CAPACITY BASKET: Our tricycle has a large rear basket, load up the conveniently basket with groceries, supplies, or whatever suits your daily shopping while staying in shape.
-
Easy to Assemble: Our adult tricycles comes with user manual, assembly tools to facilitate your installation.
-
SATISFACTION GUARANTEE: Our adult trike also comes with a one-year warranty on all defective or damaged parts. 30-day return & money back guarantee. We offer premium quality and the best service, no matter what reason cause dissatisfaction, we'll replace it or reimburse you every cent back! Feel free to contact us, We will solve the problem for you in time.
Vendor by :
MOONCOOL
Sku :
JM-P24-ZS
Inventory :
999999999
${function(){
const variantData = data.variant || {"id":"01eb7217-7c45-4cd1-8c9b-1b1c2f3e660e","product_id":"38feeeb2-59a2-4bd5-a54a-3994bac2942c","title":"","weight_unit":"lb","inventory_quantity":0,"sku":"JM-P24-ZS","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":295,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"295","retail_price":"0","available":true,"url":"\/products\/mooncool-adult-tricycles-7-speed-16-20-24-26-inch-3-wheel-bikes-three-wheeled-bicycles-cruise-trike-with-shopping-basket-for-seniors-women-men-teenager-kids?variant=01eb7217-7c45-4cd1-8c9b-1b1c2f3e660e","available_quantity":999999999,"options":[],"off_ratio":"0","flashsale_info":{"variant_id":"01eb7217-7c45-4cd1-8c9b-1b1c2f3e660e","product_id":"","quantity":0,"discount_id":"","limit_time":0,"limit_buy":0,"user_limit_buy":0,"discount_sales":0,"discount_sales_rate":"","discount_stock":0,"ends_at":0,"starts_at":0,"allow_oversold":"","allocation_method":"","price":"295","compare_at_price":"","discount_price":"295","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"0","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":0};
return `
Vendor by :
${data.product && data.product.vendor}
Weight :
${variantData && variantData.weight}${variantData && variantData.weight_unit}
Barcode :
${variantData && variantData.barcode}
Sku :
${variantData && variantData.sku}
Inventory :
${variantData && variantData.available_quantity}
` }()}