Purple

74 Products
Filter
  • Reset
  • The highest price is 159
    $
    $
  • 0 selected
    Reset
  • 0 selected
    Reset
  • 0 selected
    Reset
  • 0 selected
    Reset
Filter
  • Price
  • Color
  • Platform
  • Heel Type
  • Season
    Price
  • The highest price is 159
    $
    $
    Color
    Platform
    Heel Type
    Season
Black Genuine Leather Pointed Toe Kitten Heel Slingback Pumps Nicepairs Black Genuine Leather Pointed Toe Kitten Heel Slingback Pumps Nicepairs

Black Genuine Leather Pointed Toe Kitten Heel Slingback Pumps

$125.00
Add to cart
Faux Suede Pointed Toe Kitten Heel Booties Bow Decor Ankle Boots Nicepairs Faux Suede Pointed Toe Kitten Heel Booties Bow Decor Ankle Boots Nicepairs

Faux Suede Pointed Toe Kitten Heel Booties Bow Decor Ankle Boots

$120.00
Add to cart
Classic Genuine Leather Pointed Toe Flats For Women Nicepairs Classic Genuine Leather Pointed Toe Flats For Women Nicepairs

Classic Genuine Leather Pointed Toe Flats For Women

$120.00
Add to cart
Square Toe Zip Booties Gorgeous Gem Crystal Chunky Heels Ankle Boots Nicepairs Square Toe Zip Booties Gorgeous Gem Crystal Chunky Heels Ankle Boots Nicepairs

Square Toe Zip Booties Gorgeous Gem Crystal Chunky Heels Ankle Boots

$132.00
Add to cart
Purple Gladiator Heels Open Toe Strappy Stiletto Heels Sandals Nicepairs Purple Gladiator Heels Open Toe Strappy Stiletto Heels Sandals Nicepairs

Purple Gladiator Heels Open Toe Strappy Stiletto Heels Sandals

$102.00
Add to cart
Women's Peep Toe Booties Buckle Cut Out Block Heel Ankle Boots Nicepairs Women's Peep Toe Booties Buckle Cut Out Block Heel Ankle Boots Nicepairs

Women's Peep Toe Booties Buckle Cut Out Block Heel Ankle Boots

$116.00
Add to cart
Red Leather Pointed Toe Kitten Heel Classic Pumps for Women Nicepairs Red Leather Pointed Toe Kitten Heel Classic Pumps for Women Nicepairs

Red Leather Pointed Toe Kitten Heel Classic Pumps for Women

$129.00
Add to cart
Women's Cut Out Leather Pointed Toe Flats Nicepairs Women's Cut Out Leather Pointed Toe Flats Nicepairs

Women's Cut Out Leather Pointed Toe Flats

$125.00
Add to cart
Sexy Faux Suede Back Lace-up Shoes Low Heel Zip Thigh High Boots Nicepairs Sexy Faux Suede Back Lace-up Shoes Low Heel Zip Thigh High Boots Nicepairs

Sexy Faux Suede Back Lace-up Shoes Low Heel Zip Thigh High Boots

$139.00
Add to cart
Comfy Pointed Toe Low Heel Leather Shoes for Women Nicepairs Comfy Pointed Toe Low Heel Leather Shoes for Women Nicepairs

Comfy Pointed Toe Low Heel Leather Shoes for Women

$120.00
Add to cart
Leather Pointed Toe 4'' Stiletto Heel Slingback Pumps Nicepairs Leather Pointed Toe 4'' Stiletto Heel Slingback Pumps Nicepairs

Leather Pointed Toe 4'' Stiletto Heel Slingback Pumps

$120.00
Add to cart
Purple Faux Suede Kitten Heels Open Toe Ankle Strap Floral Sandals Nicepairs Purple Faux Suede Kitten Heels Open Toe Ankle Strap Floral Sandals Nicepairs

Purple Faux Suede Kitten Heels Open Toe Ankle Strap Floral Sandals

$115.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
Green Faux Leather Pointy Toe 4'' Crystal Decorative Heel Pumps Nicepairs Green Faux Leather Pointy Toe 4'' Crystal Decorative Heel Pumps Nicepairs

Green Faux Leather Pointy Toe 4'' Crystal Decorative Heel Pumps

$128.00
Add to cart
Black Leather Pointed Toe Comma Heel Pumps with Two-Color Stitching Nicepairs Black Leather Pointed Toe Comma Heel Pumps with Two-Color Stitching Nicepairs

Black Leather Pointed Toe Comma Heel Pumps with Two-Color Stitching

$126.00
Add to cart
Purple Pointed Toe Zipper Ankle Boots Decorative Heels Nicepairs Purple Pointed Toe Zipper Ankle Boots Decorative Heels Nicepairs

Purple Pointed Toe Zipper Ankle Boots Decorative Heels

$122.00
Add to cart
Elegant Purple Closed Pointed Toe Ankle Boots with Decorative Heel Nicepairs Elegant Purple Closed Pointed Toe Ankle Boots with Decorative Heel Nicepairs

Elegant Purple Closed Pointed Toe Ankle Boots with Decorative Heel

$115.00
Add to cart
Purple Satin Prom Shoes Pointed Toe Ankle Strap Rose Block Heel Pumps Nicepairs Purple Satin Prom Shoes Pointed Toe Ankle Strap Rose Block Heel Pumps Nicepairs

Purple Satin Prom Shoes Pointed Toe Ankle Strap Rose Block Heel Pumps

$120.00
Add to cart
Maroon Faux Suede Lace up Peep Toe Gladiator Heels Sandals Nicepairs

Maroon Faux Suede Lace up Peep Toe Gladiator Heels Sandals

$114.00
Add to cart
Yellow Leather Pointed Toe 4'' Stiletto Heel Hollow Out Pumps Nicepairs Yellow Leather Pointed Toe 4'' Stiletto Heel Hollow Out Pumps Nicepairs

Yellow Leather Pointed Toe 4'' Stiletto Heel Hollow Out Pumps

$129.00
Add to cart
Purple Satin Square Toe 4'' Chunky Heel Sandals for Party Nicepairs Purple Satin Square Toe 4'' Chunky Heel Sandals for Party Nicepairs

Purple Satin Square Toe 4'' Chunky Heel Sandals for Party

$109.00
Add to cart
Purple  Pointed Toe Boots Zipper Wedge Heels Nicepairs Purple  Pointed Toe Boots Zipper Wedge Heels Nicepairs

Purple Pointed Toe Boots Zipper Wedge Heels

$126.00
Add to cart
Elegant Purple Square Toe Buckled Strappy Ankle Boots with Chunky Heel Nicepairs Elegant Purple Square Toe Buckled Strappy Ankle Boots with Chunky Heel Nicepairs

Elegant Purple Square Toe Buckled Strappy Ankle Boots with Chunky Heel

$115.00
Add to cart
Purple Faux Suede Pointed Toe Buckle Pumps With Kitten Heels Nicepairs Purple Faux Suede Pointed Toe Buckle Pumps With Kitten Heels Nicepairs

Purple Faux Suede Pointed Toe Buckle Pumps With Kitten Heels

$100.00
Add to cart
Purple Pointed Toe Side-Zip Embroidered Mid-Calf Cowgirl Boots With Chunky Heels Nicepairs Purple Pointed Toe Side-Zip Embroidered Mid-Calf Cowgirl Boots With Chunky Heels Nicepairs

Purple Pointed Toe Side-Zip Embroidered Mid-Calf Cowgirl Boots With Chunky Heels

$159.00
Add to cart
Purple Vegan Leather  Pointed Toe Side-Zip Knee High Boots With Chunky Heels Nicepairs Purple Vegan Leather  Pointed Toe Side-Zip Knee High Boots With Chunky Heels Nicepairs

Purple Vegan Leather Pointed Toe Side-Zip Knee High Boots With Chunky Heels

$159.00
Add to cart
Purple Vegan Leather  & Mesh Mixed Pointed Toe Glitter Inlay Slip-On Flat Pumps Nicepairs Purple Vegan Leather  & Mesh Mixed Pointed Toe Glitter Inlay Slip-On Flat Pumps Nicepairs

Purple Vegan Leather & Mesh Mixed Pointed Toe Glitter Inlay Slip-On Flat Pumps

$105.00
Add to cart
Elegant Light Purple Satin Ballet Flats with Round Toe and Bow Detail Nicepairs Elegant Light Purple Satin Ballet Flats with Round Toe and Bow Detail Nicepairs

Elegant Light Purple Satin Ballet Flats with Round Toe and Bow Detail

$100.00
Add to cart
Light Purple Patent Leather Closed Pointed Toe Slingback Pumps With Stiletto Heels Nicepairs Light Purple Patent Leather Closed Pointed Toe Slingback Pumps With Stiletto Heels Nicepairs

Light Purple Patent Leather Closed Pointed Toe Slingback Pumps With Stiletto Heels

$120.00
Add to cart
Multicolor Metallic Closed Pointed Toe Mid-Calf Cowgirl Boots with Chunky Heels Nicepairs Multicolor Metallic Closed Pointed Toe Mid-Calf Cowgirl Boots with Chunky Heels Nicepairs

Multicolor Metallic Closed Pointed Toe Mid-Calf Cowgirl Boots with Chunky Heels

$128.00
Add to cart
Purple Suede Closed Pointed Toe Bow Ankle Boots With Stiletto Heels Nicepairs Purple Suede Closed Pointed Toe Bow Ankle Boots With Stiletto Heels Nicepairs

Purple Suede Closed Pointed Toe Bow Ankle Boots With Stiletto Heels

$115.00
Add to cart
Purple Suede Opened Toe Strappy Platform Sandals With Wedge Heels Nicepairs Purple Suede Opened Toe Strappy Platform Sandals With Wedge Heels Nicepairs

Purple Suede Opened Toe Strappy Platform Sandals With Wedge Heels

$115.00
Add to cart
Purple Satin Opened Toe Rhinestone Ankle Strappy Sandals With Stiletto Heels Nicepairs Purple Satin Opened Toe Rhinestone Ankle Strappy Sandals With Stiletto Heels Nicepairs

Purple Satin Opened Toe Rhinestone Ankle Strappy Sandals With Stiletto Heels

$115.00
Add to cart
Purple Satin Closed Pointed Toe Bow Mules With Decorative Heels Nicepairs Purple Satin Closed Pointed Toe Bow Mules With Decorative Heels Nicepairs

Purple Satin Closed Pointed Toe Bow Mules With Decorative Heels

$120.00
Add to cart
Purple Satin Opened Toe Ankle Strappy Sandals With Stiletto Heels Nicepairs Purple Satin Opened Toe Ankle Strappy Sandals With Stiletto Heels Nicepairs

Purple Satin Opened Toe Ankle Strappy Sandals With Stiletto Heels

$115.00
Add to cart
Purple Satin Opened Pointed Toe Wide Band Mules With Decorative Heels Nicepairs Purple Satin Opened Pointed Toe Wide Band Mules With Decorative Heels Nicepairs

Purple Satin Opened Pointed Toe Wide Band Mules With Decorative Heels

$120.00
Add to cart
Purple  Opened Toe Rhinestone Decor Slingback Strappy Sandals With Decorative Heels Nicepairs Purple  Opened Toe Rhinestone Decor Slingback Strappy Sandals With Decorative Heels Nicepairs

Purple Opened Toe Rhinestone Decor Slingback Strappy Sandals With Decorative Heels

$115.00
Add to cart
Purple  & Velvet Mesh Closed Pointed Toe Rhinestone Mules With Stiletto Heels Nicepairs Purple  & Velvet Mesh Closed Pointed Toe Rhinestone Mules With Stiletto Heels Nicepairs

Purple & Velvet Mesh Closed Pointed Toe Rhinestone Mules With Stiletto Heels

$120.00
Add to cart
Purple Satin Closed Pointed Toe Bow Ankle Strappy Pumps With Decorative Heels Nicepairs Purple Satin Closed Pointed Toe Bow Ankle Strappy Pumps With Decorative Heels Nicepairs

Purple Satin Closed Pointed Toe Bow Ankle Strappy Pumps With Decorative Heels

$120.00
Add to cart
Purple Satin Closed Pointed Toe Crisscross strappy Pumps With Stiletto Heels Nicepairs Purple Satin Closed Pointed Toe Crisscross strappy Pumps With Stiletto Heels Nicepairs

Purple Satin Closed Pointed Toe Crisscross strappy Pumps With Stiletto Heels

$120.00
Add to cart
Purple Patent Leather Python Opened Toe Rhinestone T-Strappy Flat Sandals Nicepairs Purple Patent Leather Python Opened Toe Rhinestone T-Strappy Flat Sandals Nicepairs

Purple Patent Leather Python Opened Toe Rhinestone T-Strappy Flat Sandals

$115.00
Add to cart
Purple Satin Opened Toe Crisscross Ankle Strappy Sandals With Stiletto Heels Nicepairs Purple Satin Opened Toe Crisscross Ankle Strappy Sandals With Stiletto Heels Nicepairs

Purple Satin Opened Toe Crisscross Ankle Strappy Sandals With Stiletto Heels

$115.00
Add to cart
Purple Satin Closed Pointed Toe Bow Mules With Kitten Heels Nicepairs Purple Satin Closed Pointed Toe Bow Mules With Kitten Heels Nicepairs

Purple Satin Closed Pointed Toe Bow Mules With Kitten Heels

$120.00
Add to cart
Purple Satin Opened Square Toe Wide Band Rhinestone Platform Mules With Chunky Heels Nicepairs Purple Satin Opened Square Toe Wide Band Rhinestone Platform Mules With Chunky Heels Nicepairs

Purple Satin Opened Square Toe Wide Band Rhinestone Platform Mules With Chunky Heels

$120.00
Add to cart
Purple Satin Closed Pointed Toe Bow Slingback Pumps With Stiletto Heels Nicepairs Purple Satin Closed Pointed Toe Bow Slingback Pumps With Stiletto Heels Nicepairs

Purple Satin Closed Pointed Toe Bow Slingback Pumps With Stiletto Heels

$120.00
Add to cart
Purple Satin Opened Square Toe Flared Strappy Mules With Decorative Heels Nicepairs Purple Satin Opened Square Toe Flared Strappy Mules With Decorative Heels Nicepairs

Purple Satin Opened Square Toe Flared Strappy Mules With Decorative Heels

$120.00
Add to cart
Purple Suede Closed Pointed Toe Ankle Strappy  Pumps  With Chunky Heels Nicepairs Purple Suede Closed Pointed Toe Ankle Strappy  Pumps  With Chunky Heels Nicepairs

Purple Suede Closed Pointed Toe Ankle Strappy Pumps With Chunky Heels

$120.00
Add to cart
Purple Glitter Opened Toe Crisscross Strappy Platform Sandals With Wedge Heels Nicepairs Purple Glitter Opened Toe Crisscross Strappy Platform Sandals With Wedge Heels Nicepairs

Purple Glitter Opened Toe Crisscross Strappy Platform Sandals With Wedge Heels

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