1/1
${data.index + 1}/${data.total}
1/1
${data.index + 1}/${data.total}
Description
Pattern: Letter Print
Process: Printed
Style: Fashion
Length: Regular
You may also like
${function(){ return ``; }()} ${function(){ return `${data.starNum}/${data.starTotal}`; }()} ${function() { const isPercentage = data.show_percentage === 'true' && data.total <= data.show_percentage_num; return `${data.showStarText === 'true' ? ` ` : ''}${data.starNum}/${data.starTotal}` }()} ${function() { return `${!isPercentage ? `${data.count}` : `${data.count / data.total * 100}%`}`; }()} ${function() { return `${data.count > 99 ? '99+' : data.count < 1 ? '' : data.count}`; }()} ${function() { return `${function() { if(data.imgCover) { if(media.videosrc) { let src = ''; if (media.videosrc) { src = media.videosrc + '.' + media.ext; } const videoDom = ``; if(!isPC){ return ` ${videoDom}` } return `${videoDom}` } else if(media.mp4 || media.hls) { const videoDom = ``; if(!isPC){ return ` ${videoDom}` } return `${videoDom}` } else { if(!isPC){ return ` ` }else{ return ` ` } } } else { if (media.videosrc) { let src = ''; if (media.videosrc) { src = media.videosrc + '.' + media.ext; } return `` } else if(media.mp4 || media.hls) { return ` ` } else { return ` ` } } }()} ` }()} ${function() { return `Newest ` }()} ${function() { return `NewestMost likedHighest ratingsLowest ratings ` }()} ${function() { return `NewestMost likedHighest ratingsLowest ratings` }()} ${function() { const list = data.listData; return `All ` }()} ${function() { const list = data.listData; return `All(${list.count})With Photos(${list.image_count}) ` }()} ${function() { const { numPages, pageNum = 1, useCallback } = data; const nums = []; const arrow = ``; let startNumber = 1; let endNumber = numPages; nums.push(`All(${list.count})With Photos(${list.image_count})${arrow}`); for (let i = startNumber; i <= endNumber; i++) { if (i === pageNum) { nums.push( `${i}` ); } else { // 第一段:不大于3 if (pageNum <= 3) { if (i < pageNum + 2 || i > Math.max(endNumber - 4, 0)) { nums.push(`${i}`); } if (i === pageNum + 2 && i < endNumber - 3) { nums.push(`...`); } } // 第二段:大于3 到 倒数第三个 if (pageNum > 3 && pageNum < endNumber - 3) { if (i < 3 || i > endNumber - 3 || (pageNum - 2 < i && i < pageNum + 2)) { nums.push(`${i}`); } if (i === 3 && pageNum - 1 !== 3) { nums.push(`...`); } if (i === endNumber - 4) { nums.push(`...`); } } // 第三段: 倒数4个 if (pageNum >= Math.max(endNumber - 3, 4)) { if (i < 3 || i > endNumber - 3 || i == pageNum - 1) { nums.push(`${i}`); } if (i === 3 && pageNum > 4 && endNumber > 5) { nums.push(`...`); } } } } nums.push(`${arrow}`); return `${nums.join(' ')}`; }()} ${function(){ return ``; }()} ${function(){ return `${data.starNum}/${data.starTotal}`; }()}${data.showStarText === 'true' ? ` ` : ''}${data.starNum}/${data.starTotal} ${function(){ const isPC = data.isPC; const pc_layout = 'single_column'; const m_loading_type = 'modal'; const showCount = data.showCount ?? (!isPC || pc_layout !== 'single_column'); const showSummary = data.showSummary ?? (!isPC || pc_layout !== 'single_column'); const showWriteReview = data.showWriteReview ?? (isPC && pc_layout !== 'single_column'); const viewall = data.viewall ?? (!isPC && m_loading_type === 'modal'); const showType = data.showType ?? ((!isPC || pc_layout !== 'single_column') && !viewall); const showSort = data.showSort ?? ((!isPC || pc_layout !== 'single_column') && !viewall); if(!data.suffix){ data.suffix = '1741607326786' } return `Write a Review
${data.title}` }()} ${function() { const pc_layout = 'single_column'; const isProductPage = '1' == 1; const product_id = '4469e6f2-470c-415e-9272-716fa5075f44'; const accent_color = ''; const randomStr = Math.random().toString(36).substring(7); const item = data; const config = data.config; const formatDate = value => { let date = new Date(value * 1000); const day = date.toLocaleString('en-US', { day: '2-digit' }); const month = date.toLocaleString('en-US', { month: 'short' }); const year = date.toLocaleString('en-US', { year: 'numeric' }); return month + '/' + day + '/' + year; }; return `Customer Reviews (${data.comment_count > 500 ? '500+' : (data.comment_count || 0)})Write a ReviewView all`; }()} ${function(){ return `${item.username}Verified${item.content}${data.shop_name} reply: ${item.reply && item.reply.length && item.reply[0].content}${formatDate(item.created_at)}`; }()} ${function() { const isPC = data.isPC; const pc_layout = data.pc_layout; const is_pagination = isPC && pc_layout == 'single_column'; const column_type = (isPC && pc_layout == 'double_column') ? 2 : 1; const is_view_more = data.hasmore && ((isPC && pc_layout == 'double_column') || (!isPC && data.m_loading_type === 'curr_page')); const is_view_all = (data.viewall ?? true) && !isPC && data.m_loading_type === 'modal'; const is_write_review = (data.write_review ?? true) && !isPC; const scroll_loading = data.scroll_loading ?? false; const is_reach_bottom = (isPC && pc_layout == 'double_column') || !isPC; return ` `; }()} ${function(){ const starOrder = ['one_star', 'two_star', 'three_star', 'four_star', 'five_star']; function sortStarRatings(ratings) { const sortedRatingsArr = []; starOrder.map((star,index) => { sortedRatingsArr.push(index+1); return star; }); return sortedRatingsArr; }; const star_levels = sortStarRatings(data.star_detail).reverse(); return `View moreWow you reached the bottomView allWrite a Review`; }()} ${function() { return `${data.comment_avg_star}Total reviews: ${data.comment_count > 999 ? '999+' : data.comment_count}${level} ` }()}Reviews ${function() { const randomStr = Math.random().toString(36).substring(7); const list = data.listData; const isPC = data.isPC; const pc_layout = 'single_column'; return ``; }()} ${function(){ const isShow = !data.data.length || (data.data[0]?.suffix === 'modal' && !data.data[0]?.hasmore); if (isShow) { return `- All(${list.count})
- With Photos(${list.image_count})
Wow you reached the bottom`; } else { return ``; } }()} ${function(){ return ` `; }()} ${function(){ const isPC = data.isPC; const pc_layout = 'single_column'; return `${function(){ if (media.videosrc) { let src = ''; if (media.videosrc) { src = media.videosrc + '.' + media.ext; } return `` } else if(media.mp4 || media.hls) { return ` ` } else { return ` ` } }()} `; }()}${function(){ return ` ` }()}No reviews available. The product reviews component has been hiddenProduct Detail ReviewsRecently viewed
Cart ${function() { const show = data && data.line_items && data.line_items.length > 0; const count = show ? data.line_items.reduce((acc, line) => { acc += parseInt(line.quantity); return acc; }, 0) : 0; return `(${count})`; }()}
Invalid(${data.invalidSkus.length})
-
Sold out${item.product_title}
- ${item.options.map(option => option.value).join('/')}
- ${propertie.name}/${propertie.isImage ? `View image` : propertie.value}
Free giftMixed Lot${item.item_text}
-
${item.product_title}
- ${item.options.map(option => option.value).join('/')}
- ${propertie.name}/${propertie.isImage ? `View image` : propertie.value}
Free giftMixed Lot*${item.quantity}${item.item_text}${discount_item.title} (- ) -
${item.product_title}
- ${item.options.map(option => option.value).join('/')}
- ${propertie.name}/${propertie.isImage ? `View image` : propertie.value}
Free giftMixed Lot${item.item_text}Reselect product specialfications
Reselect product specialfications
Your shopping cart is empty
${textArrayHtml}
You've got free shipping
${rate}%
Total:
${function() {
const textArray = ("Save {{save_amount}}").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 {{save_amount}}").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}
Taxes and shipping cost are calculated at checkout
${(function(){
var total_price = data.total_price;
var postageFreeAmount = 69;
var freeAmount = postageFreeAmount - total_price;
var isFreeShipping = freeAmount <= 0;
var freeShippingBg = !isFreeShipping?'#FFF7EE':'#E5FFE2';
var rate = Math.min(total_price / postageFreeAmount * 100, 100).toFixed(2);
const textArray = ("Spend {{ amount }} more and get free shipping!").split(/\{\{\s*amount\s*\}\}/);
const textArrayHtml = textArray.map((text, index) => {
if (index == 0) {
return `${text}`;
}
return ` ${text}`;
}).join('');
return `
`
})()}
const summaryStickyRender = document.querySelector('#cart-drawer-summary-sticky-render');
if (summaryStickyRender) {
document.body.style.setProperty('--cart-drawer-summary-sticky-height', summaryStickyRender.clientHeight + 'px');
}
${textArrayHtml}
You've got free shipping
${rate}%
${data.invalid_msg}
Total:
${function() {
const textArray = ("Save {{save_amount}}").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 {{save_amount}}").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 {{save_amount}}").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}
Taxes and shipping cost are calculated at checkout
-
Subtotal:
-
Save:
-
-
${discount_application.title}:
-
Total:
Taxes and shipping cost are calculated at checkout
${function() {
const variantData = data.variant || data.product.variants.find(v => v.available) || data.product.variants[0];
const saveType = null;
const productLabelDiscountOn = null;
return `
See detail
${saveType == 'percentage'
? `-${variantData.off_ratio}%`
: `- `
}
`;
}()}
${function() {
const currentProduct = data.product;
// fix default selected variant
let selected = {};
if (!(data.selectedOptions || []).length) {
const selectedVariant = currentProduct.variants.find(v => v.available) || currentProduct.variants[0];
if (selectedVariant) {
selectedVariant.options.forEach((option, idx) => {
if (!selected[option.name]) {
selected[option.name] = [];
}
if (selected[option.name].indexOf(option.value) === -1) {
selected[option.name].push(option.value);
}
});
}
} else {
selected = selected.reduce((acc, item) => {
acc[item.name] = item.value;
return acc;
}, {});
}
return (currentProduct.options || []).map((option, index) => {
const optionName = option.name || '';
const position = `option${index + 1}`;
const isThumbImage = !!option.showThumbImage;
const variantType = "button";
const thumbStyle = "image_with_text";
const getThumbImage = (value) => {
const options = data.product.options || [];
const option = options.find(o => o.name === optionName);
if (option.thumbImages) {
const thumbImage = option.thumbImages.find(t => t.value === value);
if (thumbImage && thumbImage.image) {
return {
src: thumbImage.image.src,
alt: thumbImage.image.alt
};
}
}
return {src: '', alt: ''};
};
return `
`
}).join('');
}()}
${data.value}
${optionName}
${data.index + 1}/${data.total}
${function() {
const selectedVariant = data.variant;
const isSoldOut = ((selectedVariant && !selectedVariant.available) || (!selectedVariant && !productData.available));
const statusLan = isSoldOut ?
"Sold out" :
"Add to cart";
return ``;
}()}
const summaryStickyRender = document.querySelector('#cart-reselect-drawer-summary-sticky-render');
if (summaryStickyRender) {
document.body.style.setProperty('--cart-reselect-drawer-summary-sticky-height', summaryStickyRender.clientHeight + 'px');
}
Back
${function() {
const force_image_size = 'natural';
const thumbnailPosition = 'below';
const selectedVariant = data.product.variants.find(v => v.available) || data.product.variants[0];
const initialSlideIndex = data.product.images.findIndex((item) => item.src === selectedVariant.image.src);
const images = data.product.images;
const imageSize = data.product.images.length;
return `
${data.product.images.map((item, index0) => {
const extra = index0 === initialSlideIndex ? 'ssr size-ratio="2"' : '';
return `
`;
}).join('')}
${imageSize > 1 ? `
` : ''}
${imageSize > 1 ? `
` : ''}`;
}()}
Retail
You may also like
${(function(){
const get_random_six_digits = () => {
return Math.random().toString().slice(-6)
};
const wholesale_enabled = false;
const setting_product_image_display = "133.33%";
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;
};
let product_image_hover_on = false;
if(secondary_image.src){
product_image_hover_on = true;
}
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;
let atc_handler = '';
if (data.has_only_default_variant) {
atc_handler = `custom-cart-drawer-sku.manualAddToCart(id=${data.id});add-card-toast-success.showToast(content='Added successfully');`;
} else {
atc_handler = `cart-invalid-drawer-quick-shop-render.render(src='/api/products/${data.id}',redo=true);cart-invalid-product-detail-drawer.open();`;
}
return `
`
})()}
oops! There are currently no similar products in the store
Back
${function() {
let variantImageShowed = false;
const currentProduct = data.product;
// fix default selected variant
let selectedValues = data.selectedValues;
if (Object.keys(data.selectedValues.length === 0)) {
const selectedVariant = currentProduct.variants.find(v => v.available) || currentProduct.variants[0];
if (selectedVariant) {
selectedVariant.options.forEach((option, idx) => {
if (!selectedValues[option.name]) {
selectedValues[option.name] = [];
}
if (selectedValues[option.name].indexOf(option.value) === -1) {
selectedValues[option.name].push(option.value);
}
});
}
}
return (currentProduct.options || []).map((option, index) => {
const optionName = option.name || '';
const position = `option${index + 1}`;
let isThumbImage = false;
if (currentProduct.need_variant_image && !variantImageShowed) {
const variantNames = ["color"] || [];
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 `
`
}).join('');
}()}
${data.originData && data.originData.value || data.value}
${optionName}
${function() {
const variantData = data.variant || data.product.variants.find(v => v.available) || data.product.variants[0];
const saveType = "percentage";
const productLabelDiscountOn = true;
return `
See detail
${saveType == 'percentage'
? `-${variantData.off_ratio}%`
: `- `
}
`;
}()}
Retail
${function() {
const selectedVariant = data.variant;
const isSoldOut = ((selectedVariant && !selectedVariant.available) || (!selectedVariant && !productData.available));
const statusLan = isSoldOut ?
"Sold out" :
"Add to cart";
return ``;
}()}
const summaryStickyRender = document.querySelector('#cart-invalid-drawer-quick-shop-summary-sticky-render');
if (summaryStickyRender) {
document.body.style.setProperty('--cart-product-drawer-summary-sticky-height', summaryStickyRender.clientHeight + 'px');
}
${function() {
const variantData = data.variant || data.product.variants.find(v => v.available) || data.product.variants[0];
const saveType = "percentage";
const productLabelDiscountOn = true;
return `
See detail
${saveType == 'percentage'
? `-${variantData.off_ratio}%`
: `- `
}
`;
}()}
${function() {
const force_image_size = 'natural';
const thumbnailPosition = 'below';
const selectedVariant = data.product.variants.find(v => v.available) || data.product.variants[0];
let initialSlideIndex = data.product.images.findIndex((item) => item.src === selectedVariant.image.src);
if (initialSlideIndex === -1) {
initialSlideIndex = 0;
}
const images = data.product.images;
const imageSize = data.product.images.length;
console.log('cart-product-drawer product images render', data, selectedVariant, initialSlideIndex, images, imageSize);
return `
${images.map((item, index0) => {
const extra = index0 === initialSlideIndex ? 'ssr size-ratio="2"' : '';
return `
`;
}).join('')}
${imageSize > 1 ? `
` : ''}
${imageSize > 1 ? `
` : ''}`;
}()}
Retail
${function(){
return data.product.options.map((option, index) => {
const optionName = option.name || '';
const optionId = option.id || '';
let isThumbImage = !!option.showThumbImage;
const thumbStyle = "image_with_text";
const variantType = "button";
const isSelected = (value) => {
const selected = (data.selectedOptions || []).find(v => v.name === optionName);
return selected && selected.value.length && selected.value[0] == value;
};
const getThumbImage = (value) => {
const options = data.product.options || [];
const option = options.find(o => o.name === optionName);
if (option.thumbImages) {
const thumbImage = option.thumbImages.find(t => t.value === value);
if (thumbImage && thumbImage.image) {
return {
src: thumbImage.image.src,
alt: thumbImage.image.alt
};
}
}
return {src: '', alt: ''};
};
return `
`
}).join('');
}()}
${data.value}
${optionName}
