Mary Jane Heels: A timeless footwear style, Mary Jane heels are characterized by their distinctive design and charming appeal. These shoes typically feature a low heel or flat sole and a rounded toe. Whether you're looking for classic elegance or a modern twist, Mary Jane heels offer versatility and comfort. Explore a variety of options, including chunky platform soles, to find the perfect pair for any occasion

Mary Jane Heels

114 Products
Filter
  • Reset
  • The highest price is 136
    $
    $
  • 0 selected
    Reset
  • 0 selected
    Reset
  • 0 selected
    Reset
  • 0 selected
    Reset
  • 0 selected
    Reset
Filter
  • Price
  • Color
  • Pattern
  • Platform
  • Heel Type
  • Season
    Price
  • The highest price is 136
    $
    $
    Color
    Pattern
    Platform
    Heel Type
    Season
Red Vegan Leather Square Toe Buckle Fastening Strappy Mary Jane Flats Nicepairs Red Vegan Leather Square Toe Buckle Fastening Strappy Mary Jane Flats Nicepairs

Red Vegan Leather Square Toe Buckle Fastening Strappy Mary Jane Flats

$109.00
Add to cart
Red Vegan Leather Square Toe Buckle Fastening Strappy Mary Jane Flats Nicepairs Red Vegan Leather Square Toe Buckle Fastening Strappy Mary Jane Flats Nicepairs

Red Vegan Leather Square Toe Buckle Fastening Strappy Mary Jane Flats

$108.00
Add to cart
Red Vegan Leather Square Toe Mary Jane Flats with Low Chunky Heels Nicepairs Red Vegan Leather Square Toe Mary Jane Flats with Low Chunky Heels Nicepairs

Red Vegan Leather Square Toe Mary Jane Flats with Low Chunky Heels

$109.00
Add to cart
Black Patent Leather Square Toe Mary Jane Flats with Low Chunky Heels Nicepairs Black Patent Leather Square Toe Mary Jane Flats with Low Chunky Heels Nicepairs

Black Patent Leather Square Toe Mary Jane Flats with Low Chunky Heels

$109.00
Add to cart
Black Mesh Round Toe Beads & Sequins Embellished Mary Jane Flats Nicepairs Black Mesh Round Toe Beads & Sequins Embellished Mary Jane Flats Nicepairs

Black Mesh Round Toe Beads & Sequins Embellished Mary Jane Flats

$116.00
Add to cart
White Mesh Round Toe Buckled Strappy Pearl Embellished Mary Jane Flats Nicepairs White Mesh Round Toe Buckled Strappy Pearl Embellished Mary Jane Flats Nicepairs

White Mesh Round Toe Buckled Strappy Pearl Embellished Mary Jane Flats

$109.00
Add to cart
Black Vegan Leather Buckle Fastening Strappy Platform Mary Jane Shoes Nicepairs Black Vegan Leather Buckle Fastening Strappy Platform Mary Jane Shoes Nicepairs

Black Vegan Leather Buckle Fastening Strappy Platform Mary Jane Shoes

$115.00
Add to cart
Black Vegan Leather Heart Buckle Strappy Platform Heeled Mary Jane Shoes Nicepairs Black Vegan Leather Heart Buckle Strappy Platform Heeled Mary Jane Shoes Nicepairs

Black Vegan Leather Heart Buckle Strappy Platform Heeled Mary Jane Shoes

$115.00
Add to cart
Pink Patent Leather Heart Buckle Strappy Platform Heeled Mary Jane Shoes Nicepairs Pink Patent Leather Heart Buckle Strappy Platform Heeled Mary Jane Shoes Nicepairs

Pink Patent Leather Heart Buckle Strappy Platform Heeled Mary Jane Shoes

$115.00
Add to cart
White Vegan Leather Buckle Double Strappy Platform Wedge Heeled Mary Jane Shoes Nicepairs White Vegan Leather Buckle Double Strappy Platform Wedge Heeled Mary Jane Shoes Nicepairs

White Vegan Leather Buckle Double Strappy Platform Wedge Heeled Mary Jane Shoes

$115.00
Add to cart
Black Faux Suede Round Toe Buckle Strappy Flat Mary Jane Shoes for Women  Nicepairs Black Faux Suede Round Toe Buckle Strappy Flat Mary Jane Shoes for Women  Nicepairs

Black Faux Suede Round Toe Buckle Strappy Flat Mary Jane Shoes for Women

$100.00
Add to cart
Yellow Vegan Leather Buckled Strappy Block Heeled Formal Mary Jane Shoes Nicepairs Yellow Vegan Leather Buckled Strappy Block Heeled Formal Mary Jane Shoes Nicepairs

Yellow Vegan Leather Buckled Strappy Block Heeled Formal Mary Jane Shoes

$100.00
Add to cart
Orange Patent Leather Platform Buckled Strappy Platform Mary Janes Shoes Nicepairs Orange Patent Leather Platform Buckled Strappy Platform Mary Janes Shoes Nicepairs

Orange Patent Leather Platform Buckled Strappy Platform Mary Janes Shoes

$109.00
Add to cart
Black Patent Leather Platform Mary Jane Shoes with Buckled Strappy Design Nicepairs Black Patent Leather Platform Mary Jane Shoes with Buckled Strappy Design Nicepairs

Black Patent Leather Platform Mary Jane Shoes with Buckled Strappy Design

$109.00
Add to cart
Maroon Vegan Leather Round Toe Buckle Strappy Mary Jane Flats  Nicepairs Maroon Vegan Leather Round Toe Buckle Strappy Mary Jane Flats  Nicepairs

Maroon Vegan Leather Round Toe Buckle Strappy Mary Jane Flats

$109.00
Add to cart
Brown Patent Leather Round Toe Strappy Backless Heeled Mary Jane Shoes Nicepairs Brown Patent Leather Round Toe Strappy Backless Heeled Mary Jane Shoes Nicepairs

Brown Patent Leather Round Toe Strappy Backless Heeled Mary Jane Shoes

$115.00
Add to cart
Black Vegan Leather Round Toe Strappy Backless Comfy Mary Jane Shoes Nicepairs Black Vegan Leather Round Toe Strappy Backless Comfy Mary Jane Shoes Nicepairs

Black Vegan Leather Round Toe Strappy Backless Comfy Mary Jane Shoes

$115.00
Add to cart
Black Vegan Leather Heart Cut-Out Lace-Trim Platform Heeled Shoes Nicepairs Black Vegan Leather Heart Cut-Out Lace-Trim Platform Heeled Shoes Nicepairs

Black Vegan Leather Heart Cut-Out Lace-Trim Platform Heeled Shoes

$115.00
Add to cart
Black Vegan Leather Bat Wing buckle fastening Platform Mary Janes      Nicepairs Black Vegan Leather Bat Wing buckle fastening Platform Mary Janes      Nicepairs

Black Vegan Leather Bat Wing buckle fastening Platform Mary Janes

$108.00
Add to cart
Black & Red Patent Leather buckle fastening Platform Mary Janes      Nicepairs Black & Red Patent Leather buckle fastening Platform Mary Janes      Nicepairs

Black & Red Patent Leather buckle fastening Platform Mary Janes

$115.00
Add to cart
Pink Vegan Leather Buckled Heart Rivet Strappy Platform Heeled Shoes  Nicepairs Pink Vegan Leather Buckled Heart Rivet Strappy Platform Heeled Shoes  Nicepairs

Pink Vegan Leather Buckled Heart Rivet Strappy Platform Heeled Shoes

$115.00
Add to cart
Black Vegan Leather Buckled Rivet Strappy Platform Block Heeled Shoes  Nicepairs Black Vegan Leather Buckled Rivet Strappy Platform Block Heeled Shoes  Nicepairs

Black Vegan Leather Buckled Rivet Strappy Platform Block Heeled Shoes

$115.00
Add to cart
Black Patent Leather Pointed Toe Grommet Buckled Mary Jane Flats Nicepairs Black Patent Leather Pointed Toe Grommet Buckled Mary Jane Flats Nicepairs

Black Patent Leather Pointed Toe Grommet Buckled Mary Jane Flats

$108.00
Add to cart
Maroon Square Toe Buckled Strappy Block Heel Mary Jane Pumps Nicepairs Maroon Square Toe Buckled Strappy Block Heel Mary Jane Pumps Nicepairs

Maroon Square Toe Buckled Strappy Block Heel Mary Jane Pumps

$115.00
Add to cart
Pink Metallic Vegan Leather Buckled Strappy Heeled Mary Janes Shoes Nicepairs Pink Metallic Vegan Leather Buckled Strappy Heeled Mary Janes Shoes Nicepairs

Pink Metallic Vegan Leather Buckled Strappy Heeled Mary Janes Shoes

$100.00
Add to cart
Silver Glittery Ankle Strappy Platform Mary Janes with Chunky Heel Nicepairs Silver Glittery Ankle Strappy Platform Mary Janes with Chunky Heel Nicepairs

Silver Glittery Ankle Strappy Platform Mary Janes with Chunky Heel

$115.00
Add to cart
Red Square Toe Satin Ankle Strappy Platform Mary Janes with Chunky Heel Nicepairs Red Square Toe Satin Ankle Strappy Platform Mary Janes with Chunky Heel Nicepairs

Red Square Toe Satin Ankle Strappy Platform Mary Janes with Chunky Heel

$115.00
Add to cart
Mustard Slingback Pumps Square Toe Block Heel Vintage Mary Jane Shoes Nicepairs Mustard Slingback Pumps Square Toe Block Heel Vintage Mary Jane Shoes Nicepairs

Mustard Slingback Pumps Square Toe Block Heel Vintage Mary Jane Shoes

$100.00
Add to cart
Golden Metallic Vegan Leather Buckle Fastening T-Strappy Heeled Mary Janes    Nicepairs Golden Metallic Vegan Leather Buckle Fastening T-Strappy Heeled Mary Janes    Nicepairs

Golden Metallic Vegan Leather Buckle Fastening T-Strappy Heeled Mary Janes

$100.00
Add to cart
Black Vegan Leather Round Toe T-Strappy Mary Janes With Chunky Heels Nicepairs Black Vegan Leather Round Toe T-Strappy Mary Janes With Chunky Heels Nicepairs

Black Vegan Leather Round Toe T-Strappy Mary Janes With Chunky Heels

$115.00
Add to cart
Black Patent Leather Square Toe Red Buckled Strappy Block Heeled Mary Janes Foe Women   Nicepairs Black Patent Leather Square Toe Red Buckled Strappy Block Heeled Mary Janes Foe Women   Nicepairs

Black Patent Leather Square Toe Red Buckled Strappy Block Heeled Mary Janes Foe Women

$108.00
Add to cart
Black Vegan Leather Platform Mary Janes With Buckle Fastening strappy design Nicepairs Black Vegan Leather Platform Mary Janes With Buckle Fastening strappy design Nicepairs

Black Vegan Leather Platform Mary Janes With Buckle Fastening strappy design

$100.00
Add to cart
Purple Vegan Leather Platform Mary Janes With Buckle Fastening strappy design Nicepairs Purple Vegan Leather Platform Mary Janes With Buckle Fastening strappy design Nicepairs

Purple Vegan Leather Platform Mary Janes With Buckle Fastening strappy design

$100.00
Add to cart
Blue Stiped Textile Sophisticated Square Toe Mary Jane Flats Slip-On Convenience Nicepairs Blue Stiped Textile Sophisticated Square Toe Mary Jane Flats Slip-On Convenience Nicepairs

Blue Stiped Textile Sophisticated Square Toe Mary Jane Flats Slip-On Convenience

$100.00
Add to cart
Black Patent Leather Square Toe Mary Jane Flats Slip-On Convenience Nicepairs Black Patent Leather Square Toe Mary Jane Flats Slip-On Convenience Nicepairs

Black Patent Leather Square Toe Mary Jane Flats Slip-On Convenience

$115.00
Add to cart
Vintage White Patent Leather Double Strap Block Heel Mary Jane Pumps Nicepairs Vintage White Patent Leather Double Strap Block Heel Mary Jane Pumps Nicepairs

Vintage White Patent Leather Double Strap Block Heel Mary Jane Pumps

$115.00
Add to cart
Nude Patent Leather Slingback Mary Jane Pumps with Block Heel Nicepairs Nude Patent Leather Slingback Mary Jane Pumps with Block Heel Nicepairs

Nude Patent Leather Slingback Mary Jane Pumps with Block Heel

$115.00
Add to cart
Black Patent Leather Round Toe Buckled Strappy Mary Janes With Chunky Heels Nicepairs Black Patent Leather Round Toe Buckled Strappy Mary Janes With Chunky Heels Nicepairs

Black Patent Leather Round Toe Buckled Strappy Mary Janes With Chunky Heels

$115.00
Add to cart
Beige Patent Leather Round Toe Strappy Mary Jane Pumps With Chunky Heels Nicepairs Beige Patent Leather Round Toe Strappy Mary Jane Pumps With Chunky Heels Nicepairs

Beige Patent Leather Round Toe Strappy Mary Jane Pumps With Chunky Heels

$100.00
Add to cart
Black Patent Leather Round Toe Strappy Mary Jane Pumps With Chunky Heels Nicepairs Black Patent Leather Round Toe Strappy Mary Jane Pumps With Chunky Heels Nicepairs

Black Patent Leather Round Toe Strappy Mary Jane Pumps With Chunky Heels

$100.00
Add to cart
Silver & Gold Vegan Leather Square Toe Rhinestone Embellished Buckle-Fastening Slingback Strappy Mary Jane Pumps With Chunky Heel Nicepairs Silver & Gold Vegan Leather Square Toe Rhinestone Embellished Buckle-Fastening Slingback Strappy Mary Jane Pumps With Chunky Heel Nicepairs

Silver & Gold Vegan Leather Square Toe Rhinestone Embellished Buckle-Fastening Slingback Strappy Mary Jane Pumps With Chunky Heel

$120.00
Add to cart
Black & White Square Toe Slingback Mary Jane Pumps with Block Heel Nicepairs Black & White Square Toe Slingback Mary Jane Pumps with Block Heel Nicepairs

Black & White Square Toe Slingback Mary Jane Pumps with Block Heel

$105.00
Add to cart
Black Patent Leather Block Heel Mary Jane Shoes with Oversized Buckle Nicepairs Black Patent Leather Block Heel Mary Jane Shoes with Oversized Buckle Nicepairs

Black Patent Leather Block Heel Mary Jane Shoes with Oversized Buckle

$108.00
Add to cart
FSJ Purple Pointy Toe Oversize Buckle Mary Jane Pumps with Block Heel Nicepairs FSJ Purple Pointy Toe Oversize Buckle Mary Jane Pumps with Block Heel Nicepairs

FSJ Purple Pointy Toe Oversize Buckle Mary Jane Pumps with Block Heel

$108.00
Add to cart
Black Patent Leather Cut Out Multi Strap Mid-Calf Mary Jane Pumps Nicepairs Black Patent Leather Cut Out Multi Strap Mid-Calf Mary Jane Pumps Nicepairs

Black Patent Leather Cut Out Multi Strap Mid-Calf Mary Jane Pumps

$116.00
Add to cart
Black Round Toe Rhinestone Mary Jane Pumps with Chunky Heels Nicepairs Black Round Toe Rhinestone Mary Jane Pumps with Chunky Heels Nicepairs

Black Round Toe Rhinestone Mary Jane Pumps with Chunky Heels

$125.00
Add to cart
Blue & White Textile Buckled Strappy Mary Janes With Chunky Heels Nicepairs Blue & White Textile Buckled Strappy Mary Janes With Chunky Heels Nicepairs

Blue & White Textile Buckled Strappy Mary Janes With Chunky Heels

$100.00
Add to cart
Pink Square Toe Triple Strap Mary Jane Pumps with Block Heels Nicepairs Pink Square Toe Triple Strap Mary Jane Pumps with Block Heels Nicepairs

Pink Square Toe Triple Strap Mary Jane Pumps with Block Heels

$100.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);