Discover the perfect pair to suit every occasion. Embrace confidence with Nicepairs' fashion-forward appeal and enduring comfort mid-calf boots.

Mid-calf Boots

133 Products
Filter
  • Reset
  • The highest price is 179
    $
    $
  • 0 selected
    Reset
  • 0 selected
    Reset
  • 0 selected
    Reset
  • 0 selected
    Reset
Filter
  • Price
  • Color
  • Platform
  • Heel Type
  • Season
    Price
  • The highest price is 179
    $
    $
    Color
    Platform
    Heel Type
    Season
Stylish Pink Pointed Toe Mid-Calf Faux Fur Boots with Stiletto Heel Nicepairs Stylish Pink Pointed Toe Mid-Calf Faux Fur Boots with Stiletto Heel Nicepairs

Stylish Pink Pointed Toe Mid-Calf Faux Fur Boots with Stiletto Heel

$154.00
Add to cart
Black Snip Toe Glitter Star Mid-Calf Cowgirl Boots with Chunky Heel Nicepairs Black Snip Toe Glitter Star Mid-Calf Cowgirl Boots with Chunky Heel Nicepairs

Black Snip Toe Glitter Star Mid-Calf Cowgirl Boots with Chunky Heel

$150.00
Add to cart
Light Purple Pointed Toe Block Heel Embroidered Mid Calf Cowgirl Boots Nicepairs Light Purple Pointed Toe Block Heel Embroidered Mid Calf Cowgirl Boots Nicepairs

Light Purple Pointed Toe Block Heel Embroidered Mid Calf Cowgirl Boots

$150.00
Add to cart
Purple Faux Suede Chunky Heel Embroidered Mid-Calf Cowgirl Boots Nicepairs Purple Faux Suede Chunky Heel Embroidered Mid-Calf Cowgirl Boots Nicepairs

Purple Faux Suede Chunky Heel Embroidered Mid-Calf Cowgirl Boots

$150.00
Add to cart
Black Vegan Suede Tassel Open Toe Mid-Calf Boots For Women Nicepairs Black Vegan Suede Tassel Open Toe Mid-Calf Boots For Women Nicepairs

Black Vegan Suede Tassel Open Toe Mid-Calf Boots For Women

$123.99
Add to cart
Blue Rivet Decor Stiletto Heel Mid-Calf Boots Nicepairs Blue Rivet Decor Stiletto Heel Mid-Calf Boots Nicepairs

Blue Rivet Decor Stiletto Heel Mid-Calf Boots

$123.99
Add to cart
Black Vegan Suede Block Heel Mid-Calf Faux Fur Boots Nicepairs Black Vegan Suede Block Heel Mid-Calf Faux Fur Boots Nicepairs

Black Vegan Suede Block Heel Mid-Calf Faux Fur Boots

$139.99
Add to cart
Khaki Pointed Toe Vegan Suede Mid-Calf Western Cowboy Boots Nicepairs Khaki Pointed Toe Vegan Suede Mid-Calf Western Cowboy Boots Nicepairs

Khaki Pointed Toe Vegan Suede Mid-Calf Western Cowboy Boots

$123.00
Add to cart
Brown Vintage Chunky Heel Embroidered Mid-Calf Cowgirl Boots Nicepairs Brown Vintage Chunky Heel Embroidered Mid-Calf Cowgirl Boots Nicepairs

Brown Vintage Chunky Heel Embroidered Mid-Calf Cowgirl Boots

$135.00
Add to cart
Black Pointed Toe Embroidered Mid-Calf Cowgirl Boots with Chunky Heel Nicepairs Black Pointed Toe Embroidered Mid-Calf Cowgirl Boots with Chunky Heel Nicepairs

Black Pointed Toe Embroidered Mid-Calf Cowgirl Boots with Chunky Heel

$154.00
Add to cart
White Patent Leather Multi-Strap Mid Calf Boots with Block Heel Nicepairs White Patent Leather Multi-Strap Mid Calf Boots with Block Heel Nicepairs

White Patent Leather Multi-Strap Mid Calf Boots with Block Heel

$142.00
Add to cart
Ivory Pointed Toe Block Heels Shoes Mid-Calf Cowgirl Boots For Women Nicepairs Ivory Pointed Toe Block Heels Shoes Mid-Calf Cowgirl Boots For Women Nicepairs

Ivory Pointed Toe Block Heels Shoes Mid-Calf Cowgirl Boots For Women

$150.00
Add to cart
Black & Green Croco Embossed Pointed Toe Mid-Calf Cowgirl Boots Nicepairs Black & Green Croco Embossed Pointed Toe Mid-Calf Cowgirl Boots Nicepairs

Black & Green Croco Embossed Pointed Toe Mid-Calf Cowgirl Boots

$150.00
Add to cart
Light Brown Faux Suede Chunky Heel Mid-Calf Cowboy Boots for Women Nicepairs Light Brown Faux Suede Chunky Heel Mid-Calf Cowboy Boots for Women Nicepairs

Light Brown Faux Suede Chunky Heel Mid-Calf Cowboy Boots for Women

$150.00
Add to cart
Brown & White Almond Toe Mid-Calf Cowgirl Boots with Chunky Heel Nicepairs Brown & White Almond Toe Mid-Calf Cowgirl Boots with Chunky Heel Nicepairs

Brown & White Almond Toe Mid-Calf Cowgirl Boots with Chunky Heel

$140.00
Add to cart
Blue Denim Chunky Heel Fold Over Mid-Calf Slouch Boots for Women Nicepairs Blue Denim Chunky Heel Fold Over Mid-Calf Slouch Boots for Women Nicepairs

Blue Denim Chunky Heel Fold Over Mid-Calf Slouch Boots for Women

$145.00
Add to cart
Red Embroidered Snip Toe Mid Calf Cowgirl Boots With Chunky Heels Nicepairs Red Embroidered Snip Toe Mid Calf Cowgirl Boots With Chunky Heels Nicepairs

Red Embroidered Snip Toe Mid Calf Cowgirl Boots With Chunky Heels

$125.00
Add to cart
Beige Faux Suede Closed Pointed Toe Mid calf Cowgirl Boots With Chunky Heels Nicepairs Beige Faux Suede Closed Pointed Toe Mid calf Cowgirl Boots With Chunky Heels Nicepairs

Beige Faux Suede Closed Pointed Toe Mid calf Cowgirl Boots With Chunky Heels

$125.00
Add to cart
Brown Vegan Leather Closed Toe Platform Mid Calf Boots With Chunky Heels Nicepairs Brown Vegan Leather Closed Toe Platform Mid Calf Boots With Chunky Heels Nicepairs

Brown Vegan Leather Closed Toe Platform Mid Calf Boots With Chunky Heels

$142.00
Add to cart
Red & White Pointed Toe Chunky Heel Mid-Calf Cowboy Boots for Women Nicepairs Red & White Pointed Toe Chunky Heel Mid-Calf Cowboy Boots for Women Nicepairs

Red & White Pointed Toe Chunky Heel Mid-Calf Cowboy Boots for Women

$128.00
Add to cart
Red Crystal Mid Calf Boots Pointed Toe Decorative Evening Heels Nicepairs Red Crystal Mid Calf Boots Pointed Toe Decorative Evening Heels Nicepairs

Red Crystal Mid Calf Boots Pointed Toe Decorative Evening Heels

$133.80
Add to cart
Black & White Stilettos Faux Fur Mid Calf Boots with Bagua Pattern Nicepairs Black & White Stilettos Faux Fur Mid Calf Boots with Bagua Pattern Nicepairs

Black & White Stilettos Faux Fur Mid Calf Boots with Bagua Pattern

$133.80
Add to cart
Black Patent Leather Punk Mid-Calf Cowboy Boots with Silver Chain Nicepairs Black Patent Leather Punk Mid-Calf Cowboy Boots with Silver Chain Nicepairs

Black Patent Leather Punk Mid-Calf Cowboy Boots with Silver Chain

$150.00
Add to cart
Blue Patent Leather Square Toe Mid-Calf Platform Sock Boots Nicepairs Blue Patent Leather Square Toe Mid-Calf Platform Sock Boots Nicepairs

Blue Patent Leather Square Toe Mid-Calf Platform Sock Boots

$123.00
Add to cart
White Block Heel Pink Butterfly Pattern Mid-Calf Cowgirl Boots Nicepairs White Block Heel Pink Butterfly Pattern Mid-Calf Cowgirl Boots Nicepairs

White Block Heel Pink Butterfly Pattern Mid-Calf Cowgirl Boots

$138.00
Add to cart
Black Rhinestone Snake Mid-Calf Fold Over Boots with Stiletto Heel Nicepairs Black Rhinestone Snake Mid-Calf Fold Over Boots with Stiletto Heel Nicepairs

Black Rhinestone Snake Mid-Calf Fold Over Boots with Stiletto Heel

$125.00
Add to cart
Red Chunky Heel Flame Pattern Mid-Calf Cowboy Boots for Women Nicepairs Red Chunky Heel Flame Pattern Mid-Calf Cowboy Boots for Women Nicepairs

Red Chunky Heel Flame Pattern Mid-Calf Cowboy Boots for Women

$125.00
Add to cart
Brown Vegan Suede Fold-over Mid Calf Cowgirl Boots with Chunky Heel Nicepairs Brown Vegan Suede Fold-over Mid Calf Cowgirl Boots with Chunky Heel Nicepairs

Brown Vegan Suede Fold-over Mid Calf Cowgirl Boots with Chunky Heel

$132.00
Add to cart
Pink Faux Suede Chunky Heel Shoes Embroidered Mid-Calf Cowgirl Boots Nicepairs Pink Faux Suede Chunky Heel Shoes Embroidered Mid-Calf Cowgirl Boots Nicepairs

Pink Faux Suede Chunky Heel Shoes Embroidered Mid-Calf Cowgirl Boots

$159.00   $179.00
Add to cart
Save $20.00 Save $20.00
Black Faux Suede Colorful Floral Embroidered Heeled Mid-Calf Cowgirl Boots   Nicepairs Black Faux Suede Colorful Floral Embroidered Heeled Mid-Calf Cowgirl Boots   Nicepairs

Black Faux Suede Colorful Floral Embroidered Heeled Mid-Calf Cowgirl Boots

$136.00
Add to cart
Pink & White Tulips Print Chunky Heel Mid-Calf Cowboy Boots for Women Nicepairs

Pink & White Tulips Print Chunky Heel Mid-Calf Cowboy Boots for Women

$159.00
Add to cart
Ivory Faux Suede Pointed Toe Wide Mid-Calf Boots With Kitten Heels Nicepairs Ivory Faux Suede Pointed Toe Wide Mid-Calf Boots With Kitten Heels Nicepairs

Ivory Faux Suede Pointed Toe Wide Mid-Calf Boots With Kitten Heels

$154.00
Add to cart
Pink Chunky Heeled Vegan Leather Embroidered Mid Calf Cowgirl Boots Nicepairs Pink Chunky Heeled Vegan Leather Embroidered Mid Calf Cowgirl Boots Nicepairs

Pink Chunky Heeled Vegan Leather Embroidered Mid Calf Cowgirl Boots

$128.00
Add to cart
Brown & Blue Patchwork Mid-Calf Snip Toe Cowgirl Boots with Chunky Heels Nicepairs Brown & Blue Patchwork Mid-Calf Snip Toe Cowgirl Boots with Chunky Heels Nicepairs

Brown & Blue Patchwork Mid-Calf Snip Toe Cowgirl Boots with Chunky Heels

$159.00
Add to cart
Vintage Maroon Studded Chunky Heel Mid-Calf Western Boots for Women Nicepairs Vintage Maroon Studded Chunky Heel Mid-Calf Western Boots for Women Nicepairs

Vintage Maroon Studded Chunky Heel Mid-Calf Western Boots for Women

$169.00
Add to cart
White Snip Toe Floral Embroidered Chunky Heel Mid-Calf Western Boots for Women Nicepairs White Snip Toe Floral Embroidered Chunky Heel Mid-Calf Western Boots for Women Nicepairs

White Snip Toe Floral Embroidered Chunky Heel Mid-Calf Western Boots for Women

$169.00
Add to cart
Black & White Snip Toe Rose Inlay Mid-Calf Western Boots for Women Nicepairs Black & White Snip Toe Rose Inlay Mid-Calf Western Boots for Women Nicepairs

Black & White Snip Toe Rose Inlay Mid-Calf Western Boots for Women

$169.00
Add to cart
Beige Square Toe Low Heel Mid-Calf Flower Embroidered Cowboy Boots for Women Nicepairs Beige Square Toe Low Heel Mid-Calf Flower Embroidered Cowboy Boots for Women Nicepairs

Beige Square Toe Low Heel Mid-Calf Flower Embroidered Cowboy Boots for Women

$159.00
Add to cart
FSJ White Cut-out Embroidered Chunky Heel Mid Calf Cowgirl Boots Nicepairs FSJ White Cut-out Embroidered Chunky Heel Mid Calf Cowgirl Boots Nicepairs

FSJ White Cut-out Embroidered Chunky Heel Mid Calf Cowgirl Boots

$169.00
Add to cart
Beige Snip Toe Embroidery Pearl Decor Mid-Calf Cowboy Boots for Women Nicepairs Beige Snip Toe Embroidery Pearl Decor Mid-Calf Cowboy Boots for Women Nicepairs

Beige Snip Toe Embroidery Pearl Decor Mid-Calf Cowboy Boots for Women

$179.00
Add to cart
Black Chunky Heeled Metallic Studded Mid Calf Cowgirl Boots Nicepairs Black Chunky Heeled Metallic Studded Mid Calf Cowgirl Boots Nicepairs

Black Chunky Heeled Metallic Studded Mid Calf Cowgirl Boots

$135.00
Add to cart
Black & Khaki Chunky Heel Heart Pattern Mid Calf Cowgirl Boots Nicepairs Black & Khaki Chunky Heel Heart Pattern Mid Calf Cowgirl Boots Nicepairs

Black & Khaki Chunky Heel Heart Pattern Mid Calf Cowgirl Boots

$154.00
Add to cart
Tan Wide Calf Embroidered Mid-Calf Cowgirl Boots with Chunky Heel Nicepairs Tan Wide Calf Embroidered Mid-Calf Cowgirl Boots with Chunky Heel Nicepairs

Tan Wide Calf Embroidered Mid-Calf Cowgirl Boots with Chunky Heel

$140.00
Add to cart
Black Faux Suede Pointed Toe Lace Up Mid Calf Boots With Stiletto Heel Nicepairs Black Faux Suede Pointed Toe Lace Up Mid Calf Boots With Stiletto Heel Nicepairs

Black Faux Suede Pointed Toe Lace Up Mid Calf Boots With Stiletto Heel

$135.00
Add to cart
Multicolor Patent Leather Snip Toe Colorful Stripe Mid-Calf Boots With Stiletto Heels Nicepairs Multicolor Patent Leather Snip Toe Colorful Stripe Mid-Calf Boots With Stiletto Heels Nicepairs

Multicolor Patent Leather Snip Toe Colorful Stripe Mid-Calf Boots With Stiletto Heels

$120.00
Add to cart
Multicolor Patent Leather Snip Toe Colorful Stripe Mid-Calf Boots With Stiletto Heels Nicepairs Multicolor Patent Leather Snip Toe Colorful Stripe Mid-Calf Boots With Stiletto Heels Nicepairs

Multicolor Patent Leather Snip Toe Colorful Stripe Mid-Calf Boots With Stiletto Heels

$120.00
Add to cart
Black Faux Suede & Fabric Pointed Toe Mid-Calf Boots With Stiletto Heels Nicepairs Black Faux Suede & Fabric Pointed Toe Mid-Calf Boots With Stiletto Heels Nicepairs

Black Faux Suede & Fabric Pointed Toe Mid-Calf Boots With Stiletto Heels

$120.00
Add to cart
Brown Faux Suede Snip Toe Embroidered Side-Zipped Mid-Calf Cowgirl Boots With Chunky Heels Nicepairs Brown Faux Suede Snip Toe Embroidered Side-Zipped Mid-Calf Cowgirl Boots With Chunky Heels Nicepairs

Brown Faux Suede Snip Toe Embroidered Side-Zipped Mid-Calf Cowgirl Boots With Chunky Heels

$140.00
Add to cart
Sorry, there are no products in this collection.
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);