Ovlias Red Pearl Strapless Prom Dress Mermaid Split Sleeveless YH0053
${function(){
const variantData = data.variant || {"id":"4ccb2deb-b389-4ba7-a9bb-82273b1000bd","product_id":"df665c26-7ba0-4e66-ad2d-0214df09818b","title":"Same as Picture-US2","weight_unit":"kg","inventory_quantity":0,"sku":" YH0053","barcode":"","position":1,"option1":"Same as Picture","option2":"US2","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/78e5b2df0bc71cc83c9c7dc5c189b6a1.jpg","path":"78e5b2df0bc71cc83c9c7dc5c189b6a1.jpg","width":674,"height":1200,"alt":"Ovlias Red Pearl Strapless Prom Dress Mermaid Split Sleeveless YH0053","aspect_ratio":0.5616666666666666},"wholesale_price":[{"price":179,"min_quantity":1}],"weight":"0","compare_at_price":"199","price":"179","retail_price":"199","available":true,"url":"\/products\/ovlias-red-pearl-strapless-prom-dress-mermaid-split-sleeveless-yh0053?variant=4ccb2deb-b389-4ba7-a9bb-82273b1000bd","available_quantity":999999999,"options":[{"name":"Color","value":"Same as Picture"},{"name":"Size","value":"US2"}],"off_ratio":10,"flashsale_info":[],"sales":1};
return `
Sku : ${variantData && variantData.sku}
Barcode : ${variantData && variantData.barcode}
`
}()}
${function() {
const variantData = data.variant || {"id":"4ccb2deb-b389-4ba7-a9bb-82273b1000bd","product_id":"df665c26-7ba0-4e66-ad2d-0214df09818b","title":"Same as Picture-US2","weight_unit":"kg","inventory_quantity":0,"sku":" YH0053","barcode":"","position":1,"option1":"Same as Picture","option2":"US2","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/78e5b2df0bc71cc83c9c7dc5c189b6a1.jpg","path":"78e5b2df0bc71cc83c9c7dc5c189b6a1.jpg","width":674,"height":1200,"alt":"Ovlias Red Pearl Strapless Prom Dress Mermaid Split Sleeveless YH0053","aspect_ratio":0.5616666666666666},"wholesale_price":[{"price":179,"min_quantity":1}],"weight":"0","compare_at_price":"199","price":"179","retail_price":"199","available":true,"url":"\/products\/ovlias-red-pearl-strapless-prom-dress-mermaid-split-sleeveless-yh0053?variant=4ccb2deb-b389-4ba7-a9bb-82273b1000bd","available_quantity":999999999,"options":[{"name":"Color","value":"Same as Picture"},{"name":"Size","value":"US2"}],"off_ratio":10,"flashsale_info":[],"sales":1};
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}
`
}()}
${function(){
const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data);
return `${tipText}
`
}()}
Product was out of stock.
Product is unavailable.
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.styl