OLCooL Vintage Gray Button Up Long Sleeve T-shirt Autumn Spring Ribbed Knitted Slim Fit Pullovers Tees Fairycore 00s Retro Y2K Tops
🚚Global Fast logistics. 7-12 Days To US & EU
💲Secure payments. ✅30days Returns
${function() {
const variantData = data.variant || {"id":"cd0e7cf5-06d7-4b85-a0b6-9022fcb1ee94","product_id":"4467d68f-af10-4553-b686-a51d1121d820","title":"Type 22-L","weight_unit":"g","inventory_quantity":1000,"sku":"OLCooL-2024-09-04-Type 22L14:203008817#Type 22;5:361385","barcode":"","position":55,"option1":"Type 22","option2":"L","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/9898410220b1dca3815a5aa573e212bf.jpeg","path":"9898410220b1dca3815a5aa573e212bf.jpeg","width":800,"height":800,"alt":"45959849541861|45959849574629|45959849607397","aspect_ratio":1},"wholesale_price":[{"price":20.88,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"20.88","retail_price":"0","available":true,"url":"\/products\/vintage-gray-button-up-long-sleeve-t-shirt-autumn-spring-ribbed-knitted-slim-fit-pullovers-tees-fairycore-00s-retro-y2k-tops?variant=cd0e7cf5-06d7-4b85-a0b6-9022fcb1ee94","available_quantity":999999999,"options":[{"name":"Color","value":"Type 22"},{"name":"Size","value":"L"}],"off_ratio":0,"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.
30 Days Free Return,100% Money Back
7*24h Service at: support@llyge.com
${function(){
const variantData = data.variant || {"id":"cd0e7cf5-06d7-4b85-a0b6-9022fcb1ee94","product_id":"4467d68f-af10-4553-b686-a51d1121d820","title":"Type 22-L","weight_unit":"g","inventory_quantity":1000,"sku":"OLCooL-2024-09-04-Type 22L14:203008817#Type 22;5:361385","barcode":"","position":55,"option1":"Type 22","option2":"L","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/9898410220b1dca3815a5aa573e212bf.jpeg","path":"9898410220b1dca3815a5aa573e212bf.jpeg","width":800,"height":800,"alt":"45959849541861|45959849574629|45959849607397","aspect_ratio":1},"wholesale_price":[{"price":20.88,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"20.88","retail_price":"0","available":true,"url":"\/products\/vintage-gray-button-up-long-sleeve-t-shirt-autumn-spring-ribbed-knitted-slim-fit-pullovers-tees-fairycore-00s-retro-y2k-tops?variant=cd0e7cf5-06d7-4b85-a0b6-9022fcb1ee94","available_quantity":999999999,"options":[{"name":"Color","value":"Type 22"},{"name":"Size","value":"L"}],"off_ratio":0,"flashsale_info":[],"sales":1};
return `
Weight : ${variantData && variantData.weight}${variantData && variantData.weight_unit}
Barcode : ${variantData && variantData.barcode}
`
}()}
people are viewing this right now
${function() {
const minDays = parseInt('7');
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 = 35;
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 `
`;
}()}
${function(){
const rules = data.data.rules;
return `
`
}()}
${function(){
const isCart = data.data.isCart;
const isCollection = data.data.isCollection;
const isProduct = data.data.isProduct;
const isIndex = data.data.isIndex;
return `
${isCart ? 'The items in the shopping cart do not participate in any recommendation rule. Add the participating items to your shopping cart to check the design.' : ''}
${isProduct ? 'This product did not participated in any recommendation rule. Switch to another product to check the design.' : ''}
${isCollection ? 'The items in this collection do not participate in any recommendation rule. Switch the participating items to check the design.' : ''}
${isIndex ? 'The home page do not participate in any recommendation rule.' : ''}
(This prompt would not display on client-side)
Recommended Products
`
}()}
${function(){
const rule = data.data;
const getImageHeight = function(image){
const image_size = rule.config.image_size || 0;
const imageWidth = image.width || 600;
const imageHeight = image.height || 800;
let ratio = 0;
if(image_size == 0){
ratio = (imageHeight / imageWidth).toFixed(2);
}else if(image_size == 1){
ratio = 1.5;
}else if(image_size == 2){
ratio = 1;
}else if(image_size == 3){
ratio = 0.75;
}
return imageWidth * ratio;
};
const toQuery = obj =>
Object.keys(obj)
.map(k =>
Array.isArray(obj[k])
? obj[k].map(v => `${k}[]=${encodeURIComponent(v)}`).join('&')
: `${k}=${encodeURIComponent(obj[k])}`
)
.join('&');
return `
`
}()}
class SpzSmartBlockComponent extends SPZ.BaseElement {
constructor(element) {
super(element);
this.templates_ = null;
this.container_ = null;
this.i18n_ = {};
this.config_ = {};
this.show_type_ = 3;
this.product_resource_id_ = '';
this.collection_resource_id_ = '';
this.cart_items_ = [];
this.customer_id_ = '';
this.order_id_ = '';
}
static deferredMount() {
return false;
}
isLayoutSupported(layout) {
return layout == SPZCore.Layout.CONTAINER;
}
buildCallback() {
const template_type = window.SHOPLAZZA.meta.page.template_type;
if (template_type === 1) {
this.show_type_ = 3;
this.product_resource_id_ = window.SHOPLAZZA.meta.page.resource_id;
} else if (template_type === 2) {
this.show_type_ = 4;
this.collection_resource_id_ = window.SHOPLAZZA.meta.page.resource_id;
} else if (template_type === 15){
this.show_type_ = 5;
} else if (template_type === 13){
this.show_type_ = 6;
} else if (template_type === 20){
this.show_type_ = 7;
this.customer_id_ = window.SHOPLAZZA.customer.customer_id;
} else if (template_type === 35){
this.show_type_ = 8;
this.order_id_ = window.location.pathname.split('/').pop();
}
this.templates_ = SPZServices.templatesForDoc(this.element);
this.setAction_();
}
mountCallback() {
console.log('smart mounted');
const that = this;
const themeName = window.SHOPLAZZA.theme.merchant_theme_name;
const isGeek = /Geek/.test(themeName);
this.fetchRules().then((res) => {
if (res && res.rules && res.rules.length) {
const blockEl = document.getElementById('smart_recommend_block');
SPZ.whenApiDefined(blockEl).then((api) => {
api.render({data: res}, true).then(() => {
if (isGeek && that.show_type_ === 6) {
blockEl.querySelector('.plugin_container_wrpper').style.padding = '30px 0';
}
const recommendStyle = document.createElement('style');
recommendStyle.innerHTML = `
.plugin__recommend_container,.app-recommend-card {
display: none !important;
}
`;
document.head.appendChild(recommendStyle);
const fetchList = [];
res.rules.forEach((rule) => {
fetchList.push(this.fetchRuleProductList(rule.id));
});
const fetchAll = Promise.all(fetchList);
fetchAll.then((p_res) => {
res.rules.forEach((rule, index) => {
rule.products = p_res[index] && p_res[index].products;
const ruleEl = document.getElementById('smart_recommend_rule_' + rule.id);
SPZ.whenApiDefined(ruleEl).then((api) => {
api.render({data: rule}, true).then(() => {
that.impressListen(`#smart_recommend_rule_ul_${rule.id}`, function(){
that.trackRuleImpress(rule);
});
const btnElList = document.querySelectorAll(`#smart_recommend_rule_ul_${rule.id} button`);
btnElList.forEach((btnEl) => {
if (btnEl && rule.config && rule.config.quick_shop_button_bg_color && rule.config.quick_shop_button_text_color) {
btnEl.style.backgroundColor = rule.config.quick_shop_button_bg_color;
btnEl.style.color = rule.config.quick_shop_button_text_color;
}
})
});
});
});
});
})
})
} else {
if (window.top !== window.self) {
const template_type = window.SHOPLAZZA.meta.page.template_t