CUBAN -Natural- Ecuador by skilled artisans [BUY 2 FREE SHIPPING & BOX PACKING]

$43.99
$87.98
Save 50%
Color : Natural
Size : S-56cm-22"
Gift Box : Ordinary
Quantity
The current produc does not participate any Rebate. Switch the participating product to check the design.
(This prompt will not be displayed on the client-side.)
people are viewing this right now
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);
❤Welcome To Our Store!❤
Leemtybd

Verified Merchant

Follow Leemtybd On pinterest!  Click on the pin or video title to go to the product page for product details and pricing. Follow US for fan discounts. Discount Code: WNEW

Description


TIPS: Our goods are authentic, with genuine patents, counterfeit must be investigated! Customers, please identify our products!

  • Fast refund>>100% Money Back Guarantee
  • Secure Payments Via PayPal®
  • Buy 2 or more items Free Shipping

Details:

The Cuban is a classic genuine panama that is a summer wardrobe staple. It has a handsome grad crown and a medium brim that will provide you with sun protection for years to come. The hat body is hand woven in Ecuador by skilled artisans and then blocked into shape and trimmed in the USA. The Cuban is trimmed with a 2 color Japanese grosgrain pug band for a modern and refined feel, and features a woven sweatband for added comfort.

The Cuban Fedora is part of the Bailey of Hollywood Est. 1922 collection, a group of hats that represent the timeless heritage of quality hatmaking and sharp dressing. Genuine Panama styles are an absolutely classic spring and summer option for hat-lovers. They're an excellent hat for resort and beach vacations, the golf course, summer concerts, and just relaxing in the sun with your favorite drink.

Note: This hat has been treated to look aged and unique. Frays, holes and color may change over time, giving both you and your hat added charm and character.

More information:

More Information
ShapeFedora
BrandTopsalepro
FabricGenuine Panama
contains furNo
material100% Toquilla Palm
Brim2 1/2" Snap
CrownGrad
Crown Height4"
SeasonSpring/Summer
USA Made or ImportedMade in USA with globally sourced materials
Country of ManufactureUnited States

Perfect finishing touch to every attire. Dress it up with a top coat and a suit or dress it down with a t-shirt and sneakers. This hat will instantly have you looking your best on every occasion.

The Panama hat is not only a fashion but also a fine handmade artworkLightweight, breathable and shading make it the darling of summer trends.

Authentic Quality

Genuinely handmade by master weavers directly in Ecuador!

Excellent Sun Protection

Product Details

  • Havana Retro

    Havana Retro is a modern fedora with a blocked teardrop crown and features a medium-sized brim, breathable sweatband, and comes in classic color grosgrain hatband or leather hatband. The brim contains a wire to hold its shape. This item is a genuine Panama hat handwoven in Ecuador.

    Material: 100% Toquilla Straw

    Brim: 2 1/8" snap

    Crown: 4 1/4" teardrop

    Hatband: 1 1/2" grosgrain or 1 1/2" cotton or 1" Jute Rope or 1" suede leather

    Climate: Sun

    Handwoven in Ecuador. Finished in the US. Measurements are approximate, this is a handwoven product and actual measurement may slightly vary.

HAT SIZING CHART


exceptional CRAFTSMANSHIPAbout transport:
Many businesses choose to use plastic bags in order to save costs. This will make the hat produce creases. Our packages are packed in cardboard boxes to protect them from distortion

Making hats never gets old, only the folks making them. With this comes generations of experience at our craft. We combine old world methods with a modern mindset because quality people deserve quality hats.

carefully CURATED DETAILS
There is deep intention behind every design. We cut fabric and textiles, but never corners. Always an art; never just a hat.

sourcing THE BEST MATERIALS
The best hats come from the best materials and only the finest will do. From 100% merino wool, hand woven toquilla straw, premium furs, and more. Start at the top.

To avoid an unpleasant shopping experience.  All POPATZ customers are strongly encouraged to watch our short "How to Measure Hat Size" video before purchase. Besides, hat sizes do not run small. To ensure a seamless buying experience, we highly recommend that you take the time to properly measure your hat size and review our Hat Sizing chart. 



Insured Worldwide Shipping: Each order includes real-time tracking details and insurance coverage in the unlikely event that a package gets lost or stolen in transit.

Money-Back Guarantee: If your items arrive damaged or become defective within 30 days of usage, we will gladly issue out a replacement or refund.

24/7 Customer Support: We have a team of live reps ready to help and answer any questions you have within a 24-hour time frame, 7 days a week.

Safe & Secure Checkouts: We use state-of-the-art SSL Secure encryption to keep your personal and financial information 100% protected.

SHIPPING

We ship to 127 countries, including the US, CA, AU and all countries in Europe.
AFTER-SALE SERVICE
Dear Customer, purchase any product here and try it in the comfort of your own home for 14 days.
If for whatever reason you’re not completely satisfied, then return the product within 14 days!

Our warehouse’s real picture,in City of Industry CA

About transport:

  • Many businesses choose to use plastic bags in order to save costs. This will make the hat produce creases. Our packages are packed in cardboard boxes to protect them from distortion

MONEY BACK GUARANTEE
We want you to be 100% satisfied with the products you buy from us. If for ANY reason you are not satisfied with your purchase, we offer iron-clad money back guarantee.

Insured Worldwide Shipping: Each order includes real-time tracking details and insurance coverage in the unlikely event that a package gets lost or stolen in transit.

Money-Back Guarantee: If your items arrive damaged or become defective within 30 days of normal usage, we will gladly issue out a replacement or refund.

✉️ 24/7 Customer Support: We have a team of live reps ready to help and answer any questions you have within a 24-hour time frame, 7 days a week.

Safe & Secure Checkouts: We use state-of-the-art SSL Secure encryption to keep your personal and financial information 100% protected.

Shipping & Delivery

🌏We offer Worldwide Tracked Shipping on all orders.🌎

Our goal is to offer you the best shipping options no matter where you live. Every day we deliver to hundreds of customers across the world, ensuring that we provide the very highest levels of responsiveness at all times.

Shipping and Delivery:

  • Standard Delivery--Free Shipping : Over 69.99 dollars 
  • Deliveries are typically made Monday to Friday between 8:00am - 6:00pm
  • Working days are: Monday to Friday (and do not include public holidays or weekends)
  • We do not ship orders on weekends or holidays. 
  • Shipping: U.S. orders fulfill and ship within 1-3 business days followed by 7-10 business days transit time for most products in the store. With delays in shipping worldwide, some products may take 1-2 weeks transit time.  We strive to get our customers their items in a timely manner with the current worldwide supply chain delays. Feel free to inquire about shipping times for specific products at hezizi0215@gmail.com
  • Shipping methods:4PX、YunExpress、Wanb Express、UBI

    Our Guarantee:

    • All your orders have a 14-day money-back guarantee!
    • Sometimes your orders can get lost/damaged on their journey to you. If this occurs, we will send you a replacement free of charge! Just contact our support team at hezizi0215@gmail.com and we will get in touch with you as soon as possible!

    Please Note: We may ask you to send us a picture of the damaged product before shipping the replacement.

    Important Remarks

    • Refunds are not given on free items. However, replacements are given for items lost while shipping.
    • Replacements are sent up to 7 days after receiving your item.
    • For more information about refunds, please read our Refund Policy.

    Tracking your order:

    To track your order, we will send you all the tracking information to your e-mail.

    Please note that your tracking number is the one we send automatically when we ship your order (it can take up to 2 days). 

    If you cannot find your tracking number, please get in touch with us at hezizi0215@gmail.com



    CONTACT US

    hezizi0215@gmail.com

    Refund Policy

    We are committed to providing customers with the best online shopping experience and satisfaction. We welcome your feedback and strive to improve the customer’s shopping experience. At the same time, we work hard to deal with your feedback. We are ready to provide customers with services that surpass everything.

    If you are not completely satisfied with your purchase, you may return or exchange your item within 14 days. Please note that the return period starts from the day you receive your order.

    HOW DO I RETURN AN ITEM?

    If you check that there is a fault with an item or wrong item you have received, please contact us within 14 days from receiving your order.

    Please provide your order number as well as the reason for your return. Our customer service team will review the return request and will send further instructions if the return is approved.

    Returned items must be in original packaging, including any accessories, manuals, and documentation. If the condition of the product shipped back to us is not in an acceptable condition we reserve the right to not refund or exchange.

    ·Non-returnable items include damaged products through customer mishandling.

    ·Returns made without a receipt may be refused.

    ·The return address will be obtained after contacting customer service to obtain the returned consent.

    WHAT IF THE ITEM(S) I RECEIVED ARE DEFECTIVE/INCORRECT/DAMAGED?

    Did you receive a faulty unit or the wrong product? Simply not satisfied with your order?

    Please contact our Customer Support team to start the return process. Please include the following information:

    ·Order number

    ·Proof of purchase(Order Summary)

    ·Video or photo of the faulty product

    In some cases, you may be required to include a video or photo of the defective product for proof in order to refund or replace the product. If a return or refund is required, for this reason, the original freight and return freight shall be borne by us.

    WHEN I CAN RECEIVE MY REFUND?

    Once your return is received and inspected, we will send you an email to notify you that we have received your returned item. We will also notify you of the approval or rejection of your refund within 3-5 business days. If you are approved, then your refund will be processed, and a credit will automatically be applied to your credit card or original method of payment, within a certain amount of days.

    Your refund will deduct the original shipping cost. At the same time, you need to bear the return shipping cost, except for damaged packages.

    WHO IS RESPONSIBLE FOR THE SHIPPING COSTS?

    If the product is not usable, due to our fault (such as size, improper damage, or quality problems), we will bear the freight for replacement and rescheduling of the returned product and the return, but if you purchase the product by mistake or error, you will have to bear the freight for the original shipping and return.

    Thank you for visiting

    Leemtybd focuses on discovering unique and personalized products for European and American consumers, we stick to our service and strive for 100% customer satisfaction. You can click on our classified collection album to find your favorite products
    SAFE PAYMENT
    Pay securely with your favorite Credit Card provider or PayPal!
    FREE SHIPPING
    Free Premium Shipping with Track and Trace, every order, every day!
    100% MONEY BACK
    14 day money back guaranteed. No questions asked!
    SUPPORT 24/7
    We're happy to help! We reply within 24 hours/7 days a week.
    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);