šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!
šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!

šŸ”„Icy Lightweight Tailored Wide Leg PantsšŸŽ‰BUY 2 GET EXTRA 10% OFF & FREE SHIPPING NOW!!!

Price

$59.95 $29.99
Save $29.96
Free shipping on orders over 69.9

color

Please select a color

size

Please select a size

Quantity

Free returns
Sustainably made
Secure payments

šŸŖPalPay certified merchants in good standing.Ā 
šŸ‘Facebook officially recommends high-quality merchants.
šŸ’µThe merchant deposit of USD 100,000 has been paid to PayPal.
āœ…Support PalPay and global credit card payment.
šŸ”’Google SSL security certificate guarantees your privacy.
šŸ›«Global super fast air transportation.

Youā€™ll have one of the most seasonal matching pants in the coming months.

Icy Tailored Wide-Leg Pants in a lightweight drapey fabric.It's effortless to dress up or down. Just put on a top and heels or favorite sandals and you're ready to go.Available in a variety of fun colors, these pants make the perfect addition to any outfit, any day of the week. Once youā€™re in these, youā€™ll never, ever want to take them off.

undefined

SIZEšŸ‘‡

One-piece wonder

Our pants are beautifully tailored to fit your body comfortably. Classic cuts and slim fit designs accentuate your best features. Theyā€™re great basics to wear with many style tops, youā€™ll wear our timeless styles for years.

These are tailored-yet-relaxed wide-leg pants with front knife pleats, easy drape, and a long, wide leg. The unique functional waistband of the wide-leg pants provides long-lasting comfort and plenty of stretch to ensure your all-day comfort.

It can be matched with boots or high heels, a sweater and suit jacket, a shirt top and more. Amazing with booties or heels, a crop top, and a tight jacket for the perfect attire.

Available in a variety of fun colors, these pants make the perfect addition to any outfit, any day of the week. Once youā€™re in these, youā€™ll never, ever want to take them off.

Made of a soft woven fabric with a flattering drape and a little stretch throughout. They arrived to me nearly wrinkle-free and stayed that way.

Composition:Ā  Polyesterļ¼Œ Elastane

Care Instructions

  • Maximum washing temperature 30Ā°C
  • Do not Bleach
  • Line dry
  • The maximum iron plate is 110Ā°C
  • Do not dry clean

Ā 

šŸ’—Why Us?šŸ’—

  • We workĀ directly with manufacturersĀ all over the world to ensureĀ the best qualityĀ of our products.Ā We have aĀ Quality Control departmentĀ which helps us to keep our promise!
  • PriceĀ is alwaysĀ competitive.
  • Awesome Customer Service
  • Amazing productsĀ along withĀ High Quality
  • ReadĀ reviewsĀ from our lovely customers

šŸŽDon't forget to buy some for your family or friends as it's an unique gift idea.ā¤ļøā¤ļøā¤ļø

Click on "ADD TO CART"Ā to get yours now!Ā 

āš”ļøStock sells fastĀ -Ā get yours today!

Ā 


HOW TO PAY

āœ…Payments ViaĀ PayPalĀ®,Ā DebitĀ andĀ CreditCard.

Ā  Ā Add to cartĀ first, andĀ Check out, then selectĀ Shipping methodĀ andĀ Payment method.

If you checkout with aĀ Debit /Ā Credit Card, just enter yourĀ *Ā Card Number,Ā *Ā Expiration Date, andĀ *Ā Secure Code.

šŸŒŽĀ Worldwide ShippingĀ āœˆĀ Ā 

Delivery typically takes different times based on the different destination. You may receive your items earlier. Tracking Numbers will always be sent so you can track it every step of the way!Ā 
šŸ”’Ā 100% Risk-Free Purchase
If you bought it and felt that it is not for you, don't worry. Send a message for us, and we will make it right by offering you a replacement or refund. 100% Simple & Risk-Free process.
šŸ­ Our WarehouseĀ Once your order is dispatched, depending on your country or region, products will be delivered to you as soon as possible.
Ā 
Ā 
/** @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-1718252090972').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);
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_type; const holderEl = document.getElementById('smart_recommend_preview_no_data_placeholder'); SPZ.whenApiDefined(holderEl).then((api) => { api.render({data: { isCart: template_type === 13, isCollection: template_type === 2, isProduct: template_type === 1, isIndex: template_type === 15 }}, true); }); } } }); } setAction_() { this.registerAction('quickShop', (data) => { const that = this; const product_id = data.args.product_id; const productIndex = data.args.productIndex; const rule_id = data.args.rule_id; const ssp = data.args.ssp; const scm = data.args.scm; const cfb = data.args.cfb; const ifb = data.args.ifb; const modalRender = document.getElementById('smart_recommend_product_modal_render'); if (product_id) { this.fetchProductData(product_id).then((res) => { const product = res.products && res.products.length && res.products[0] || {}; product.cfb = cfb; product.ifb = ifb; SPZ.whenApiDefined(modalRender).then((api) => { api.render({product: product, productIndex: productIndex, rule_id: rule_id, ssp: ssp, scm: scm, show_type: that.show_type_}, true).then(() => { const modalEl = document.getElementById('smart_recommend_product_modal'); SPZ.whenApiDefined(modalEl).then((modal) => { that.impressListen('#smart_recommend_product_modal', function(){ that.trackQuickShop({ rule_id: rule_id, product_id: product_id }); }); modal.open(); }); const formEl = document.getElementById('smart_recommend_product_form'); SPZ.whenApiDefined(formEl).then((form) => { form.setProduct(product); }); const variantEl = document.getElementById('smart_recommend_product_variants'); SPZ.whenApiDefined(variantEl).then((variant) => { variant.handleRender(product); }); }); }) }); } }); this.registerAction('handleScroll', (data) => { this.directTo(data.args.rule_id, data.args.direction); }); this.registerAction('handleProductChange', (data) => { const variant = data.args.data.variant; const product = data.args.data.product; const imageRenderEl = document.getElementById('smart_recommend_product_image'); SPZ.whenApiDefined(imageRenderEl).then((api) => { api.render({ variant: variant, product: product }, true); }); }); this.registerAction('handleAtcSuccess', (detail) => { const data = detail.args; data.data.product = data.data.product || {}; data.data.variant = data.data.variant || {}; const product_id = data.data.product.id; const product_title = data.data.product.title; const variant_id = data.data.variant.id; const price = data.data.variant.price; const rule_id = data.rule_id; const aid = `smart_recommend.${this.show_type_}.${rule_id}`; const ifb = data.data.product.ifb; const cfb = data.data.product.cfb; const ssp = data.ssp; const scm = data.scm; const spm = `smart_recommend_${this.show_type_}.${data.spmIndex}`; const params = { id: product_id, product_id: product_id, number: 1, name: product_title, variant_id: variant_id, childrenId: variant_id, item_price: price, source: 'add_to_cart', _extra: { aid: aid, ifb: ifb, cfb: cfb, scm: scm, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, ssp: ssp, } }; this.tranckAddToCart(params); }); this.registerAction('addATCHook', (data) => { const params = data.args; const spm = `smart_recommend_${this.show_type_}.${params.spmIndex}`; this.myInterceptor_ = window.djInterceptors && window.djInterceptors.track.use({ event: 'dj.addToCart', params: { aid: `smart_recommend.${this.show_type_}.` + params.rule_id, ssp: params.ssp, scm: params.scm, cfb: params.cfb, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, }, once: true }); }); } tranckAddToCart(detail) { if (window.$) { window.$(document.body).trigger('dj.addToCart', detail); } } fetchRules() { const payload = { show_type: this.show_type_, }; let that = this; if (this.show_type_ === 6) { let line_items = []; return this.fetchCart().then((res) => { if (res && res.cart && res.cart.line_items) { line_items = res.cart.line_items.map((item) => { return { product_id: item.product_id, variant_id: item.variant_id, quantity: item.quantity, price: item.price } }); } payload.line_items = line_items; that.cart_items_ = line_items; return that.fetchRulesRequest(payload); }); } else { if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return this.fetchRulesRequest(payload); } } fetchRulesRequest(payload) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_query", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }); } fetchCart() { return fetch(`/api/cart/cart-select?r=${Math.random().toString(36).slice(-4)}`) .then((res) => { if (res.ok) { return res.json(); } }); } fetchRuleProductList(rule_id) { const payload = { page: 1, limit: 100, fields: ["title", "url", "image", "min_price_variant.price", "min_price_variant.compare_at_price"], rule_id: rule_id, }; if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 6) { payload.line_items = this.cart_items_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); }); } fetchProductData(product_id) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ product_ids: [product_id], fields: [ "images", "options", "min_price_variant", "variants"] }) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); const loadingEl = document.getElementById('smart_recommend_loading'); if (loadingEl) { loadingEl.style.display = 'none'; } }); } getStyle(ele, style) { if (!ele) return; if (window.getComputedStyle) { return window.getComputedStyle(ele)[style]; } return ele.currentStyle[style]; } directTo(id, direction) { const scrollElement = document.getElementById(`smart_recommend_rule_ul_${id}`); const blockWidth = parseInt(this.getStyle(scrollElement, 'width')); const scrollLength = (blockWidth * 0.19 - 12) * 5; const scrollPoint = scrollElement.scrollWidth - scrollElement.clientWidth; if (!scrollElement) return; if (direction === 'left') { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft - scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: Math.max(scrollElement.scrollLeft - scrollLength, 0), behavior: 'smooth' }); } else { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint + 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: scrollElement.scrollLeft >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); } } trackRuleImpress(rule) { if (window.sa && window.sa.track) { window.sa.track("plugin_common", { plugin_name: "upsell", event_type: "impressions", rule_id: rule.id, ssp: rule.ssp, scm: rule.scm, show_type: this.show_type_, support_app_block: window.SHOPLAZZA.theme.support_app_block }); window.sa.track("module_impressions", { aid: `smart_recommend.${this.show_type_}.${rule.id}`, support_app_block: window.SHOPLAZZA.theme.support_app_block }); } } trackQuickShop(data) { window.sa && sa.track && sa.track("plugin_common", { plugin_name: "upsell", event_type: "quick_shop", rule_id: data.rule_id, product_id: data.product_id, show_type: this.show_type_, }); } impressListen(selector, cb) { const el = document.querySelector(selector); const onImpress = (e) => { if (e) { e.stopPropagation(); } cb(); }; if (el && !el.getAttribute('imprsd')) { el.addEventListener('impress', onImpress) } else if (el) { onImpress(); } } } SPZ.defineElement('spz-custom-smart-block', SpzSmartBlockComponent);