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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
Leather Pointed Toe 4'' Stiletto Heel Slingback Pumps Nicepairs
Leather Pointed Toe 4'' Stiletto Heel Slingback Pumps Nicepairs
14/26
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
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 Nicepairs
Leather Pointed Toe 4'' Stiletto Heel Slingback Pumps Nicepairs
14/26

Leather Pointed Toe 4'' Stiletto Heel Slingback Pumps

$120.00
$0.00
Save $-120.00
6 sold
Color
Please select a color
Size
Please select a size
Quantity
SKU: NP2021040905-Black-3
Weight: 1kg
Barcode: 6009372963597
Customer Reviews

Here are what our customers say.

Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.

Spot Lights:

  • Handmade craftsmanship: every stitch is neat and made by hand.
  • Material: Genuine leather
  • Style: Slingback pumps                                               
  • Heel type: Stiletto Heels
  • Heel Height: 4" / 100 mm approx. Product measurements were taken using size 8. Please note that measurements may vary by size.
  • Toe: Closed pointed toe
  • Platform: No platform
  • Special Designs: Genuine leather Stiletto heel slingback pumps with elastic band
 
Brand Funny She Jill SKU NP2021040902
Size(US) 3-15 Heel / Height Stiletto heel / 10cm
Vamp Genuine leather Toe Pointy toe
Insole Cattlehide Outsole Faux leather


  • Unique design: Closed Pointed Toe, and three-time color brushing ensures a shiny and solid appearance.
  • 10cm/4 inch height stiletto heel: makes your legs look long and lean and adds elegance and a long line to an outfit.
  • Pointy toe: pointy toe gives you a few extra inches to extend your legs.
  • Slingback: wear backless or slingback shoes instead of pumps, your legs will look thinner and longer.
  • Genuine leather vamp and insole: designed with comfort in mind, they are crafted with the softest genuine leather for a snug fit that feels as glamorous as it looks.
  • Excellent craftsmanship: every stitch is made neat by hand.
  • Outfit ideas: jeans, pencil A-line and knee length skirts, midi skirt, floral dress, wide-legged pants, tee, sundress, off-shoulder top, shift dress

AVAILABLE COLORS


DESCRIPTION

DETAILS

Whatever your aesthetic, great style is just a step away.  

In a versatile hue and set on 10.5 cm blade heels, these elegant slingback pumps will prove to be a worthy wardrobe ally for years to come.

The slingback feature makes them stand out, while the pencil/stiletto heel is all style and ease.

Slip into them and feel your level of confidence skyrocket as you add a touch of luxe to all your outfits.

The vegetable-tanned midsole, not easy to deform, provides perfect support for your arch, helps flat feet, and reduces and prevents pain.

There is enough space inside and the toes can be stretched freely, so don't worry even if you have wide feet.

CLOSE-UP PICTURES

WHICH COLOR DO YOU PREFER?

These shoes were designed with the modern woman in mind.

Lets see some on-feet pictures!

Add instant sophistication to any outfit with this dazzling pair.

Why not choose a pair for yourself?

#OOTD IDEAS#

An essential pair for any professional wardrobe.

Made for fearlessly fashionable ladies who are unafraid to push their style boundaries, these slingback pumps feature a 5-inch-high heel that keeps you looking sleek.

Designed with a pointed toe and fashioned in a bright hue, all eyes will definitely be on you wherever you go.

 Made from eco-friendly genuine leather and featuring a classic finish, these pumps ooze versatility.

Easy to walk in and yet incredibly sleek, these slim heel slingback heels deserve a spot in your wardrobe this season.

With a slingback strap design that lets you slip into them quickly while maintaining a secure fit, elevate your look to a whole new level with the classy smooth finish.

SIZE REFERENCE

CUSTOMIZED SERVICE

Didn't find the color or the style that you like? Or Have any questions?
We will provide you with one-to-one customized service!

We accept all kinds of customization, customized your dreamy style of shoes

(can be customized according to the manuscript, customized materials, heel height, foot length, foot width, etc.). 

For more detailed information please contact us:support@nicepairs.com 

Message to buyers

Thanks for your support along the way.

NicePairs is a fashion women's shoe retailer and a sole agent of Funny She Jill which is a women's shoe brand that started its online business in 2008 and have a self-owned factory, we offer shoes made in full size and serve our customers from all over the world.

We only make women's shoes and have been there for 14 years. We agree that customer satisfaction is our priority, and we'll continue to update our products to keep up with trends.

We have thousands of fashionable women's shoe styles on our website and provide customization services as well.

If you can't find a style you like, we can customize almost any shoe style you like within a few weeks with our customization service.

Once again our sincere thanks.

      For more information please click https://www.nicepairs.com/pages/about-us

Teams:Nicepairs.

 

 

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);