Men's Polo Shirts Casual Colorblock Two Piece Set
Sku : YP2204121086-Two piece set-S
${function(){
const variantData = data.variant || {"id":"4498d51a-e5d1-4084-8b7b-6f88a454a55b","product_id":"43273162-d180-4fbf-bf4a-1f86f4fa3d91","title":"Two piece set-S","weight_unit":"kg","inventory_quantity":0,"sku":"YP2204121086-Two piece set-S","barcode":"","position":1,"option1":"Two piece set","option2":"S","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/9753715a0c17af73b64a55e37b6502a2.jpeg","path":"9753715a0c17af73b64a55e37b6502a2.jpeg","width":640,"height":800,"alt":"","aspect_ratio":0.8},"wholesale_price":[{"price":37.95,"min_quantity":1}],"weight":"0","compare_at_price":"34.54","price":"37.95","retail_price":"34.54","available":true,"url":"\/products\/mens-polo-shirts-casual-colorblock-two-piece-set-en2m?variant=4498d51a-e5d1-4084-8b7b-6f88a454a55b","available_quantity":999999999,"options":[{"name":"Style","value":"Two piece set"},{"name":"Size","value":"S"}],"off_ratio":0,"flashsale_info":[],"sales":6};
return `
Sku : ${variantData && variantData.sku}
Barcode : ${variantData && variantData.barcode}
`
}()}
${function() {
const variantData = data.variant || {"id":"4498d51a-e5d1-4084-8b7b-6f88a454a55b","product_id":"43273162-d180-4fbf-bf4a-1f86f4fa3d91","title":"Two piece set-S","weight_unit":"kg","inventory_quantity":0,"sku":"YP2204121086-Two piece set-S","barcode":"","position":1,"option1":"Two piece set","option2":"S","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/9753715a0c17af73b64a55e37b6502a2.jpeg","path":"9753715a0c17af73b64a55e37b6502a2.jpeg","width":640,"height":800,"alt":"","aspect_ratio":0.8},"wholesale_price":[{"price":37.95,"min_quantity":1}],"weight":"0","compare_at_price":"34.54","price":"37.95","retail_price":"34.54","available":true,"url":"\/products\/mens-polo-shirts-casual-colorblock-two-piece-set-en2m?variant=4498d51a-e5d1-4084-8b7b-6f88a454a55b","available_quantity":999999999,"options":[{"name":"Style","value":"Two piece set"},{"name":"Size","value":"S"}],"off_ratio":0,"flashsale_info":[],"sales":6};
const saveType = "percentage";
const productLabelDiscountOn = true;
return `
-
${saveType == 'percentage'
? `-${variantData.off_ratio}%`
: `-`
}
`;
}()}
100% Money Back Guarantee. Order >> 5-10 days to processing. Delivery>> 10-15 days to arrive
${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.
/** @private {string} */
class SpzCustomAnchorScroll extends SPZ.BaseElement {
static deferredMount() {
return false;
}
constructor(element) {
super(element);
/** @private {Element} */
this.scrollableContainer_ = null;
}
isLayoutSupported(layout) {
return layout == SPZCore.Layout.LOGIC;
}
buildCallback() {
this.viewport_ = this.getViewport();
this.initActions_();
}
setTarget(containerId, targetId) {
this.containerId = '#' + containerId;
this.targetId = '#' + targetId;
}
scrollToTarget() {
const container = document.querySelector(this.containerId);
const target = container.querySelector(this.targetId);
const {scrollTop} = container;
const eleOffsetTop = this.getOffsetTop_(target, container);
this.viewport_
.interpolateScrollIntoView_(
container,
scrollTop,
scrollTop + eleOffsetTop
);
}
initActions_() {
this.registerAction(
'scrollToTarget',
(invocation) => this.scrollToTarget(invocation?.caller)
);
this.registerAction(
'setTarget',
(invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId)
);
}
/**
* @param {Element} element
* @param {Element} container
* @return {number}
* @private
*/
getOffsetTop_(element, container) {
if (!element./*OK*/ getClientRects().length) {
return 0;
}
const rect = element./*OK*/ getBoundingClientRect();
if (rect.width || rect.height) {
return rect.top - container./*OK*/ getBoundingClientRect().top;
}
return rect.top;
}
}
SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll);
const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings";
class SpzCustomStrengthenTrust extends SPZ.BaseElement {
constructor(element) {
super(element);
this.renderElement_ = null;
}
isLayoutSupported(layout) {
return layout == SPZCore.Layout.CONTAINER;
}
buildCallback() {
this.xhr_ = SPZServices.xhrFor(this.win);
const renderId = this.element.getAttribute('render-id');
SPZCore.Dom.waitForChild(
document.body,
() => !!document.getElementById(renderId),
() => {
this.renderElement_ = SPZCore.Dom.scopedQuerySelector(
document.body,
`#${renderId}`
);
if (this.renderElement_) {
this.render_();
}
this.registerAction('track', (invocation) => {
this.track_(invocation.args);
});
}
);
}
render_() {
this.fetchData_().then((data) => {
if (!data) {
return;
}
SPZ.whenApiDefined(this.renderElement_).then((apis) => {
apis?.render(data);
document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{
if(event.target.nodeName == 'A'){
this.track_({type: 'trust_content_click'});
}
})
});
});
}
track_(data = {}) {
const track = window.sa && window.sa.track;
if (!track) {
return;
}
track('trust_enhancement_event', data);
}
parseJSON_(string) {
let result = {};
try {
result = JSON.parse(string);
} catch (e) {}
return result;
}
fetchData_() {
return this.xhr_
.fetchJson(STRENGTHEN_TRUST_URL)
.then((responseData) => {
if (!responseData || !responseData.data) {
return null;
}
const data = responseData.data;
const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => {
return result.concat(Object.assign(moduleSetting, {
logos: (moduleSetting.logos || []).map((item) => {
return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item;
})
}));
}, []);
return Object.assign(data, {
module_settings: moduleSettings,
isEditor: window.self !== window.top,
});
});
}
}
SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);
${data.module_title}
To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature.
${item.content.replaceAll("{store_name}","SUITMENS")}
To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature.
Top Category: Two piece set
Occasion: Leisure, Vacation
Season: Spring, Summer
Elasticity: Low Elasticity
Sleeve Length: Short Sleeve
Suitable Type:Loose
Fabric: Polyester Fiber, Cotton
Neckline: Lapel
Size Chart: M~6XL
Tops Size |
Bust |
Shoulder |
Length |
cm |
inch |
cm |
inch |
cm |
inch |
M |
104 |
40.94 |
50 |
19.69 |
70 |
27.56 |
L |
108 |
42.52 |
52 |
20.47 |
72 |
28.35 |
XL |
112 |
44.09 |
54 |
21.26 |
74 |
29.13 |
2XL |
116 |
45.67 |
56 |
22.05 |
76 |
29.92 |
3XL |
120 |
47.24 |
58 |
22.83 |
78 |
30.71 |
4XL |
124 |
48.82 |
60 |
23.62 |
80 |
31.50 |
5XL |
128 |
50.39 |
62 |
24.41 |
82 |
32.28 |
6XL |
132 |
51.97 |
64 |
25.20 |
84 |
33.07 |
Pants Size |
Pants length |
Hip |
Waistline |
cm |
inch |
cm |
inch |
cm |
inch |
M |
49 |
19.29 |
106 |
41.73 |
70 |
27.56 |
L |
50 |
19.69 |
108 |
42.52 |
71 |
27.95 |
XL |
51 |
20.08 |
110 |
43.31 |
72 |
28.35 |
2XL |
52 |
20.47 |
112 |
44.09 |
73 |
28.74 |
3XL |
53 |
20.87 |
114 |
44.88 |
74 |
29.13 |
4XL |
54 |
21.26 |
116 |
45.67 |
75 |
29.53 |
5XL |
55 |
21.65 |
118 |
46.46 |
76 |
29.92 |
6XL |
56 |
22.05 |
120 |
47.24 |
77 |
30.31 |
${function() {
const minDays = parseInt('10');
const maxDays = parseInt('15');
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}
`;
}()}
${function() {
const postageFreeAmount = 99;
const custom_text = "Buy {amount} more to enjoy FREE Shipping";
const totalPrice = +data.total_price;
const diffPrice = postageFreeAmount - totalPrice;
const percentDiff = (diffPrice > 0 ? (totalPrice / postageFreeAmount * 100) : 100) + '%';
let tipText = "Your order is free delivery";
if (diffPrice > 0) {
tipText = custom_text.replace('{amount}', `
`);
}
return `
`;
}()}