Blue turtle
${function() {
const variantData = data.variant || {"id":"c85e3c8f-db7d-4cdc-80c6-f0d0668c5030","product_id":"a4fd580f-0aa0-4a65-8c04-13bac2102384","title":"","weight_unit":"kg","inventory_quantity":0,"sku":"","barcode":"763102275522","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":36.99,"min_quantity":1}],"weight":"0","compare_at_price":"36.99","price":"36.99","retail_price":"36.99","available":true,"url":"\/products\/blue-turtle?variant=c85e3c8f-db7d-4cdc-80c6-f0d0668c5030","available_quantity":999999999,"options":[],"off_ratio":0,"flashsale_info":[],"sales":0};
const saveType = "percentage";
const productLabelDiscountOn = true;
return `
-
${saveType == 'percentage'
? `-${variantData.off_ratio}%`
: `-`
}
`;
}()}
Product was out of stock.
Product is unavailable.
${function(){
const variantData = data.variant || {"id":"c85e3c8f-db7d-4cdc-80c6-f0d0668c5030","product_id":"a4fd580f-0aa0-4a65-8c04-13bac2102384","title":"","weight_unit":"kg","inventory_quantity":0,"sku":"","barcode":"763102275522","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":36.99,"min_quantity":1}],"weight":"0","compare_at_price":"36.99","price":"36.99","retail_price":"36.99","available":true,"url":"\/products\/blue-turtle?variant=c85e3c8f-db7d-4cdc-80c6-f0d0668c5030","available_quantity":999999999,"options":[],"off_ratio":0,"flashsale_info":[],"sales":0};
return `
Sku : ${variantData && variantData.sku}
Weight : ${variantData && variantData.weight}${variantData && variantData.weight_unit}
Barcode : ${variantData && variantData.barcode}
`
}()}
This beach towel features a light blue turtle illustration, presenting a serene and profound ocean atmosphere. Against the deep blue background, the outline of the turtle is clearly visible, as if it is swimming in the ocean at ease. The light blue sea turtle is set against the deep blue background, adding a unique touch of ocean to the beach towel. What's more, this beach towel is made of environmentally friendly cotton. Lying on the beach, let the sun spread all over the body, the beach towel gently brushed the skin, as if you can feel the breadth and depth of the ocean. At the same time, the use of environmentally friendly cotton also reflects the deep care for the earth's environment. While enjoying the beach holiday, we should also actively pay attention to environmental protection and contribute to the earth. This beach towel is not only beautiful and practical, but also a fashion item to show your environmental concept.
•Product Size: Approx 35" x 71" (90cm x 180cm)
•Product Colors: Grey
•Regular size, Single jacquard weave with twisted fringe
•100% Turkish Organic Cotton
•Product Weight: 310
•Sand Resistant Design
•Super Absorbent
•Design In Turkish
•Machine Wash Cold
•Delicate Cycle
•Do Not Bleach
•Hang Air Dry
•Do Not Iron
•Do Not Dry Clean
•Do Not Use Fabric Softeners or Dryer Sheets
• Do Not Wash with Denim or Heavy Garment
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.