Black Strapless Split Sleeveless Beaded Long Evening Dress JX0058
${function(){
const variantData = data.variant || {"id":"69bb1540-698d-4c9e-a742-632d6d991ed9","product_id":"295c07a4-32cc-493e-850c-558f839c56a7","title":"Same as Picture-US2","weight_unit":"kg","inventory_quantity":999,"sku":"JX0058","barcode":"","position":1,"option1":"Same as Picture","option2":"US2","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/d3e54fedaab363d3cb246ca4c992bc21.jpg","path":"d3e54fedaab363d3cb246ca4c992bc21.jpg","width":600,"height":900,"alt":"Black Strapless Split Sleeveless Beaded Long Evening Dress JX0058","aspect_ratio":0.6666666666666666},"wholesale_price":[{"price":199,"min_quantity":1}],"weight":"1","compare_at_price":"199","price":"199","retail_price":"199","available":true,"url":"\/products\/black-strapless-split-sleeveless-beaded-long-evening-dress-jx0058?variant=69bb1540-698d-4c9e-a742-632d6d991ed9","available_quantity":999999999,"options":[{"name":"Color","value":"Same as Picture"},{"name":"Size","value":"US2"}],"off_ratio":0,"flashsale_info":[],"sales":3};
return `
Sku : ${variantData && variantData.sku}
Barcode : ${variantData && variantData.barcode}
`
}()}
${function() {
const variantData = data.variant || {"id":"69bb1540-698d-4c9e-a742-632d6d991ed9","product_id":"295c07a4-32cc-493e-850c-558f839c56a7","title":"Same as Picture-US2","weight_unit":"kg","inventory_quantity":999,"sku":"JX0058","barcode":"","position":1,"option1":"Same as Picture","option2":"US2","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/d3e54fedaab363d3cb246ca4c992bc21.jpg","path":"d3e54fedaab363d3cb246ca4c992bc21.jpg","width":600,"height":900,"alt":"Black Strapless Split Sleeveless Beaded Long Evening Dress JX0058","aspect_ratio":0.6666666666666666},"wholesale_price":[{"price":199,"min_quantity":1}],"weight":"1","compare_at_price":"199","price":"199","retail_price":"199","available":true,"url":"\/products\/black-strapless-split-sleeveless-beaded-long-evening-dress-jx0058?variant=69bb1540-698d-4c9e-a742-632d6d991ed9","available_quantity":999999999,"options":[{"name":"Color","value":"Same as Picture"},{"name":"Size","value":"US2"}],"off_ratio":0,"flashsale_info":[],"sales":3};
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.
${function() {
const minDays = parseInt('20');
const maxDays = parseInt('30');
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('f