[Wetrose] Genshin Impact Ganyu Raiden Wanderer Keqing Yelan Xingqiu Lumine Zhongli Nilou Nahida Kaveh Venti Hutao Raiden Klee Ayaka Kazuha Kuki Shinobu Ningguang Yae Miko Xiao Guizhong Lynette Lyeney Arlecchino Fatui Shenhe Cosplay Wig
${function() {
const variantData = data.variant || {"id":"8c0e0f86-71ca-4147-8ddb-79047448a45c","product_id":"c12128a5-b50d-428e-a707-e37ff77f0c20","title":"Kaveh","weight_unit":"kg","inventory_quantity":3,"sku":"piao yi -Kaveh","barcode":"","position":1,"option1":"Kaveh","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/f16a70a4b25c396dcb97101fbbcf9216.jpeg","path":"f16a70a4b25c396dcb97101fbbcf9216.jpeg","width":800,"height":800,"alt":"[Wetrose] Genshin Impact Ganyu Raiden Wanderer Keqing Yelan Xingqiu Lumine Zhongli Nilou Nahida Kaveh Venti Hutao Raiden Klee Ayaka Kazuha Kuki Shinobu Ningguang Yae Miko Xiao Guizhong Lynette Lyeney Arlecchino Fatui Shenhe Cosplay Wig","aspect_ratio":1},"wholesale_price":[{"price":14.99,"min_quantity":1}],"weight":"0.8","compare_at_price":"21.49","price":"14.99","retail_price":"21.49","available":true,"url":"\/products\/wetrose-genshin-impact-ganyu-raiden-wanderer-keqing-yelan-xingqiu-lumine-zhongli-nilou-nahida-kaveh-venti-hutao-raiden-klee-ayaka-kazuha-kuki-shinobu-ningguang-yae-miko-xiao-guizhong-lynette-lyeney-arlecchino-fatui-shenhe-cosplay-wig?variant=8c0e0f86-71ca-4147-8ddb-79047448a45c","available_quantity":3,"options":[{"name":"Wig","value":"Kaveh"}],"off_ratio":30,"flashsale_info":[],"sales":0};
const saveType = "amount";
const productLabelDiscountOn = true;
return `
-
${saveType == 'percentage'
? `-${variantData.off_ratio}%`
: `-`
}
`;
}()}
${function(){
const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data);
return `${tipText}
`
}()}
Product was out of stock.
Product is unavailable.
${function(){
const variantData = data.variant || {"id":"8c0e0f86-71ca-4147-8ddb-79047448a45c","product_id":"c12128a5-b50d-428e-a707-e37ff77f0c20","title":"Kaveh","weight_unit":"kg","inventory_quantity":3,"sku":"piao yi -Kaveh","barcode":"","position":1,"option1":"Kaveh","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/f16a70a4b25c396dcb97101fbbcf9216.jpeg","path":"f16a70a4b25c396dcb97101fbbcf9216.jpeg","width":800,"height":800,"alt":"[Wetrose] Genshin Impact Ganyu Raiden Wanderer Keqing Yelan Xingqiu Lumine Zhongli Nilou Nahida Kaveh Venti Hutao Raiden Klee Ayaka Kazuha Kuki Shinobu Ningguang Yae Miko Xiao Guizhong Lynette Lyeney Arlecchino Fatui Shenhe Cosplay Wig","aspect_ratio":1},"wholesale_price":[{"price":14.99,"min_quantity":1}],"weight":"0.8","compare_at_price":"21.49","price":"14.99","retail_price":"21.49","available":true,"url":"\/products\/wetrose-genshin-impact-ganyu-raiden-wanderer-keqing-yelan-xingqiu-lumine-zhongli-nilou-nahida-kaveh-venti-hutao-raiden-klee-ayaka-kazuha-kuki-shinobu-ningguang-yae-miko-xiao-guizhong-lynette-lyeney-arlecchino-fatui-shenhe-cosplay-wig?variant=8c0e0f86-71ca-4147-8ddb-79047448a45c","available_quantity":3,"options":[{"name":"Wig","value":"Kaveh"}],"off_ratio":30,"flashsale_info":[],"sales":0};
return `
`
}()}
${function() {
const minDays = parseInt('1');
const maxDays = parseInt('90');
const customText = "Estimated Delivery\uff1a{min_date} - {max_date}";
const minDate = new Date(Date.now() + (minDays * 86400000));
const maxDate = new Date(Date.now() + (maxDays * 86400000));
const formatDate = (minDate.getFullYear() == maxDate.getFullYear() && minDate.getFullYear() == new Date().getFullYear())
? new Intl.DateTimeFormat('en', { month: 'short', day: '2-digit' })
: new Intl.DateTimeFormat('en', { month: 'short', day: '2-digit', year: 'numeric' });
const tipText = customText.replace(/\{min_date\}/g, '' + formatDate.format(minDate) + '')
.replace(/\{max_date\}/g, '' + formatDate.format(maxDate) + '');
return `
${tipText}
`;
}()}
Here are what our customers say.
Newest
Most liked
Highest ratings
Lowest ratings
Wow you reached the bottom
Most liked
Highest ratings
Lowest ratings
×
${function(){
const limit = typeof data === 'number' ? data : 0;
return `
Pictures/Videos (${limit || 0}/5)
` }()}
${(function(){
const closeIcon =
'
';
if (item.type === 'image') {
return `
${closeIcon}
`
}
return `
${closeIcon}
`
})()}
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.