✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
1 / 17
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe
50% OFF

✨Letzter Tag 49% Rabatt - Multifunktionale Solar Camping Mosquito Killer Lampe

€29.99 €59.98
Verkaufte Stückzahl: 2
Farbe
Menge

Wie es funktioniert: (Wie man Moskitos anlockt?)

  1. Die Anti-Moskito-Lampe kann die Luft zersetzen und Kohlendioxid produzieren, um Moskitos anzulocken.
  2. Nachdem die Anti-Moskito-Lampe eingeschaltet ist, kann sie eine spezielle Lichtfrequenz erzeugen, um Moskitos anzulocken.

Wussten Sie, dass es eine neue tragbare Moskito-Lampe gibt, die mit einer speziellen Lichtfrequenz arbeitet, um Mücken aus Ihrem Garten fernzuhalten?

Die leistungsstarke und tragbare wiederaufladbare Lampe ist wirksam gegen das Vertreiben von Moskitos und Schädlingen und hält eine Fläche von über 375 Quadratfuß frei von Ungeziefer!


Multifunktionale Solar-Anti-Moskito-Lampe, Anti-Insektenlampe

(🎁Ein Geschenk für jemanden...)

Die Solar-Anti-Moskito-Lampe ist eine zu 100 % sichere und solarbetriebene Insektenabwehrlampe, die es Ihnen ermöglicht, Innen- und Außenräume komplett frei von Insekten und Mücken zu genießen! Die Solar-Anti-Moskito-Lampe tötet nicht nur Insekten, sondern dient auch als Taschenlampe und Campinglaterne, um jeden gewünschten Raum bis zu 10 Stunden lang gut zu beleuchten!

100% Sicher Keine Chemikalien, kein UV-Licht – somit sicher in der Anwendung, auch in der Nähe von Kindern und Haustieren.

Wenn Sie im Freien spielen, können Sie die Solar-Anti-Moskito-Lampe über USB jederzeit aufladen und sich voll und ganz auf den Spaß im Freien konzentrieren, ohne von Mücken gestört zu werden. Genießen Sie eine mückenfreie Umgebung.

Kraftvoller 1000V Hochspannungsimpuls mit einer effektiven Insektenvernichtungsreichweite von 33 Quadratmetern.

Tragbar Leicht und wasserdicht, können Sie sie überall hin mitnehmen. 3-in-1 Funktioniert als Insektenvernichter, Taschenlampe und Allwettercampinglampe. Die stoßfeste Mikroplastikstäbe mit einem Durchmesser von 7 mm, die den Kern des Solar-Anti-Moskito-Lichts umgeben, sorgen für absolute Sicherheit und 100% Unfallfreiheit!

Der einfachste Weg, um Ihren eigenen persönlichen Insektenbekämpfer zu haben.

Mit einem einfachen Anschließen an die Stromversorgung zieht das solarbetriebene Licht Mücken und Fliegen an die Spitze des Geräts. In einem Augenblick sind diese lästigen Ungeziefer weggezischt. Wenn Sie die Solar-Anti-Moskito-Lampe verwenden, können Sie Ihre Beschwerden leicht "ausschalten" und Ihre Lebensqualität drastisch verbessern.

Genießen Sie die Natur Mit einer langanhaltenden Aufladung von bis zu 24 Stunden können Sie in der Frische der Natur ohne lästige Fliegen schwelgen.

Verbessern Sie Ihren Schlaf Die Zeiten des Gestochenwerdens im Schlafzimmer sind vorbei. Stellen Sie die Lampe neben Ihr Bett und genießen Sie ungestörten Schlaf.

Erleichterung von Stress Das Bemühen, diese mürrischen Fliegen und Insekten zu töten, kann überwältigend sein. Die Solar-Anti-Moskito-Lampe beseitigt alle Belastungen eines von Insekten wimmelnden Umfelds.

  • WIE VIELE BRAUCHE ICH?

    🔥 92% unserer Kunden KAUFEN 2 ODER MEHR (eine für jedes Zimmer: Kinderzimmer, Küche, Wohnzimmer, Außenterrasse, Hinterhof usw.) 🔥

Warum die Solar-Anti-Moskito-Lampe wählen?

Hier sind die Details:

  1. MODERNE UV-TECHNOLOGIE – Sie integriert eine eigene UV-Technologie, die 5x mehr Mücken anzieht als jedes andere Gerät auf dem Markt.
  2. BIS ZU 350 QM ABDECKUNG – Von Hinterhöfen über Wohnzimmer bis hin zu Gärten und Campingplätzen am See, schützt es Sie, Ihre Familie und Freunde vor lästigen Mückenstichen.
  3. SUPER EINFACH ZU VERWENDEN – Einfach einstecken, aufladen und überallhin mitnehmen, und es fängt sofort an, Mücken zu fangen, damit sie Ihnen keine Schwierigkeiten mehr bereiten.
  4. STABILES, KOMPAKTES DESIGN – Das Gerät sitzt unauffällig in jeder Ecke des Raumes und fügt sich in die Umgebung ein, ist kompakt und leicht genug, um Sie auf jeden Campingausflug mitzunehmen, ohne Sie zu belasten.
  5. STUNDENLANGER KABELLOSER STROM – Trotz seiner erstaunlichen Effektivität bei der Ausrottung von Mücken in großen Bereichen ist es unglaublich energieeffizient und kann bis zu 10 Stunden lang ohne Anschluss betrieben werden.

INNEN

  • LEISE TIEFFREQUENZ - Mit einer leisen Frequenz von 35 dB, die zusätzlich Moskitos anzieht, dabei jedoch für Menschen und Haustiere völlig geräuschlos ist.

IM FREIEN

Wie die multifunktionale Solar-Anti-Moskito-Lampe 2024 Schädlinge fernhält

In nur 3 einfachen Schritten: basiert auf dem wissenschaftlichen Prinzip zusammen mit einer dynamischen 3-in-1 Aktion, die hilft, Insekten anzulocken, zu zappen und einzufangen.

  1. Attraktion durch blaues Licht
    Die multifunktionale Solar-Anti-Moskito-Lampe 2024 sendet ein sicheres blaues Licht mit einer Wellenlänge von 365 nm aus, das Mücken, Fliegen, Motten und mehr in Richtung ihres Kerns lockt.
  2. Zappen durch Hochspannungskern
    Sobald diese Insekten den Kern des Lichts erreichen, werden sie sofort mit einer Hochspannung ohne Geräusche oder Geruch abgezapt.
  3. Einfache Reinigung des Auffangbehälters
    Die multifunktionale Solar-Anti-Moskito-Lampe 2024 verfügt über ein leicht zu reinigendes Tablett für abgezappte Insekten, das Sie ohne Unordnung entleeren können.

Blog - Was sagen die Leute, die es benutzt haben?

Ich bin kürzlich von der West- an die Ostküste gezogen, um eine neue Stelle in den Medien anzutreten. Doch nachdem ich eines Abends draußen saß und die Skyline genoss, wurde mir schnell klar, dass ich nicht mehr in einer mückenfreien Stadt war. Mücken sahen in mir ihr Abendessen und sie griffen an.

Ein Dutzend Mückenstiche später wusste ich, dass ich etwas tun musste, sonst würden meine Abende von Mückenstichen dominiert werden, und mein Sommerleben hier zur Hölle gemacht werden.

Also begann ich, jedes Produkt unter der Sonne zu recherchieren, um zu sehen, welche die am besten bewerteten Mückenschutzmittel waren. Das einzige Problem war, dass die besten von ihnen auch giftige Chemikalien verwendeten, und ich wollte keine giftigen Chemikalien oder stinkende Kerzen verwenden, um sie fernzuhalten. Ich begann frustriert zu werden, also postete ich vor dem Schlafengehen auf Facebook und fragte, ob einer meiner Freunde irgendwelche Vorschläge hatte.

Brillante Ratschläge von meinem Freund...

Am nächsten Morgen wachte ich zu einer Nachricht von einem Freund auf, der als Elektroingenieur bei einem großen Tech-Unternehmen arbeitet. Er erzählte mir von einem neuen Produkt, das einer seiner Freunde gerade entwickelt hatte, und zwar ein Anti-Moskito-Gerät, das eine völlig neue Lichtwellentechnologie verwendet, um Mücken schnell anzulocken und zu töten. "Funktioniert das wirklich?" fragte ich. Hier ist, was er sagte:

Also habe ich eines für 22.99€ bestellt und beschlossen, es auszuprobieren. Es kam innerhalb von 3 Tagen nach der Bestellung an und ich habe es getestet. Das erste, was ich bemerkte, war, dass es wunderschön verpackt war. Es ist definitiv kein billig hergestelltes "Made in China"-Produkt.

Ich habe auch festgestellt, dass es eine Lithiumbatterie in der Mitte verwendet, um die Spulen mit Strom zu versorgen, um die Moskitos anzulocken und abzutanzen und die UV-Frequenz zu erzeugen, die sie anlockt, und die Batterie hält über 10 Stunden. Es kann auch mit jedem USB-Ladegerät aufgeladen werden. Perfekt, um es unterwegs dabei zu haben.

Der echte Test - Wie effektiv ist es beim Töten von Moskitos?

Moment der Wahrheit... Die Moskitos waren bereits in großer Zahl unterwegs, also schaltete ich es ein und stellte es auf die Mauer - weg von mir und am anderen Ende des Gartens.

Was als Nächstes geschah, ist außergewöhnlich. Innerhalb weniger Minuten gab es keine Mücken mehr, die mich belästigten. Ich konnte es nicht glauben. Ich goss mir ein Glas Wein ein und wartete einfach... nichts als Frieden und Ruhe. Kein Summen in meinem Ohr, kein Jucken am Hals, kein Wedeln mit den Armen. Nur Frieden und Ruhe. Es hat funktioniert. Ich ging ohne einen einzigen Stich hinein (und habe seit Beginn der Anwendung keinen einzigen mehr gehabt).

"Sie werden vor dem Sommer ausverkauft sein"

Später an diesem Abend schrieb ich meinem Freund, um ihm zu sagen, dass es ein Erfolg war, und er war begeistert für mich. Er erzählte mir, dass er auch für seinen Freund, der es herstellt, aufgeregt ist, denn aufgrund der Wirksamkeit der neuen Anti-Moskito-Lampe gegen Mücken verkauft sie sich schnell.

Also, wenn Sie diesen Blog lesen und eine haben möchten, empfehle ich, dass Sie sich bald eine besorgen, bevor sie für den Sommer ausverkauft sind. Denn dies wird die beste Schädlingsbekämpfung sein, die Sie dieses Jahr in Ihrem Garten haben.

Früher konnte ich während des Sommers nicht länger als zehn Minuten draußen verbringen, bevor ich ein halbes Dutzend Mal gestochen wurde, aber als ich mich hinsetzte, um ein Buch mit einem Glas Wein zu lesen, mit der neuen Anti-Moskito-Lampe eingeschaltet, bemerkte ich, dass keine lästigen Kreaturen versuchten, mich als leichte Mahlzeit zu nutzen.

Ich döste in meinem T-Shirt und Shorts auf meiner Veranda ein (normalerweise eine schreckliche Idee im Frühling), aber als ich zwei Stunden später aufwachte, war ich kein einziges Mal gestochen worden!

Dann nahm ich sie mit zum Camping.

Am nächsten Wochenende ging ich mit meinen Kumpels am Fluss in Marshalls Creek campen, einer wunderschönen Gegend, aber bekannt als Mücken-Hotspot. Ich nahm die neue Anti-Moskito-Lampe mit und schaltete sie ein, als wir abends Bier tranken.

Ich stellte die neue Anti-Moskito-Lampe etwa 15 Meter vom Lager entfernt auf, damit die Insekten dorthin gehen würden.

"Das Ding wird alle Hände voll zu tun haben", sagte mein Freund, als er giftiges Repellent energisch auf seine Beine auftrug. Aber ich setzte alles darauf, mich nur auf die neue Anti-Moskito-Lampe zu verlassen, und ich bin so froh, dass ich das getan habe.

Nach einem ganzen Abend unter den Sternen, waren meine Beine und Arme frei von Stichen, genauso wie der Rest meiner Freunde. Natürlich fragten sie am nächsten Tag als Erstes, wo sie dieses Gerät bekommen könnten, das ich mitgebracht hatte.

Sie konnten es nicht glauben, und ich auch nicht. Vertrauen Sie mir, ich benutze diesen Ausdruck nicht oft, aber die neue Anti-Moskito-Lampe ist einfach ERSTAUNLICH.

Fazit: Es ist eine Selbstverständlichkeit

Mit einem ultraleichten Aufbau dauert es buchstäblich 20 Sekunden, um die neue Anti-Moskito-Lampe direkt aus der Verpackung in Betrieb zu nehmen. Schalten Sie sie einfach ein, so leicht ist das. Aber warten Sie...

Ich kann die Fragen jetzt schon hören... wie groß ist der Bereich, den die neue Anti-Moskito-Lampe vor Mücken schützt?

Antwort - bis zu 33 Quadratmetern! Seitdem ich sie platziert habe, hatte ich nie wieder Probleme mit Mücken, und das in jedem Raum, in dem ich sie aufgestellt habe, selbst in meinem offenen Wohnzimmer. Und was den Außenbereich betrifft, ist die neue Anti-Moskito-Lampe vollständig solar- und USB-aufladbar, sodass ich sie nach draußen mitnehmen kann, um beim Grillen oder bei Veranstaltungen alle vor Stichen in meinem Garten zu schützen.

Material: ABS

🏆Der Vorrat ist schnell ausverkauft-holen Sie sich noch heute Ihren!


WIE MAN BEZAHLT

  • PayPal ist hier willkommen.
  • Wenn Sie mit Kreditkarte bezahlen möchten. Bitte klicken Sie auf Paypal und suchen Sie nach „Mit Debit- oder Kreditkarte bezahlen“.

WARUM WIR?

Wir arbeiten direkt mit Herstellern auf der ganzen Welt zusammen, um die beste Qualität unserer Produkte zu gewährleisten. Wir haben eine Qualitätskontrolleabteilung, die uns hilft, unser Versprechen zu halten!

  • Der Preis ist immer konkurrenzfähig.
  • Hervorragender Kundenservice.
  • Erstaunliche Produkte in hoher Qualität.
  • Lesen Sie Bewertungen unserer lieben Kunden.

Weltweiter Versand.

Bitte beachten Sie, dass der Versand versichert ist. Sie können Ihre Artikel jedoch möglicherweise früher erhalten. Tracking-Nummern werden IMMER gesendet, damit Sie ihn Schritt für Schritt verfolgen können! Coole Dinge sind es wert, darauf zu warten!

100% risikofreier Kauf

Wenn das von Ihnen erhaltene Produkt beschädigt ist, keine Sorge. Klicken Sie einfach auf die Schaltfläche "Kontakt" und senden Sie uns eine Nachricht, und wir werden es in Ordnung bringen, indem wir Ihnen einen Ersatz oder eine Rückerstattung anbieten. 100% einfacher und risikofreier Prozess.

undefined

Unser Lager

Wir haben Lagerhäuser auf der ganzen Welt, werden wir das nächstgelegene Lager nach Ihrer Adresse zu versenden, wählen Sie bitte sicher, dass die Bestellung!

class SpzCustomDiscountBundleProducts extends SPZ.BaseElement { constructor(element) { super(element); this.xhr_ = SPZServices.xhrFor(this.win); this.getDiscountPriceApi = "\/api\/storefront\/promotion\/calculate\/discounted_price"; this.buyNowApi = "\/api\/checkout\/order"; this.batchAtcApi = "\/api\/cart\/batch"; // 款式信息集合 this.productStyleInfo = []; // 弹窗内选择款式集合 this.modalVariantInfo = []; this.show_classic_bundle_spu_style = false; this.bundleProducts = []; //捆绑商品 this.bundleConfig = {}; //下方按钮配置 this.discountId = ""; this.discountType = ""; this.discountInfo = ""; this.lineItems = []; this.tempCss = {}; this.renderQuickShop_ = this.win.SPZCore.Types.debounce(this.win, this.renderQuickShopModal.bind(this), 500); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.setupAction_(); }; init(data = []) { this.productStyleInfo = data; } handleRequestError_(data) { this.showToast(data?.message || data?.errors?.[0] || 'Unknown error'); }; //外部组件调用传值 setBundleData(products, config = "", id = "", type = "", info = {}) { this.bundleProducts = products; if(config) { this.bundleConfig = config; this.discountId = id; this.discountType = type; this.discountInfo = info; if(type === 'DT_CLASSIC_BUNDLE' && info.enable_min_purchase_qty && info.min_purchase_qty_type == 'spu') { this.show_classic_bundle_spu_style = true; } // 经典捆绑初始化商品数据 if(type == 'DT_CLASSIC_BUNDLE') { this.productStyleInfo = products.map((item) => { return this.getFilteredVariants_(item, 'single'); }); } } } handleChangeSort() { const result = this.productStyleInfo.reduce((map, item) => { if (!map[item.product_id]) { map[item.product_id] = []; } map[item.product_id].push(item); return map; }, {}); Object.values(result).forEach((item) => { this.handleSpzVariantRender_(item, item[0].product_id); this.handleProductOption_(item[0].product_id, true); }); } // 调用spz-tag组件的doRender方法 handleSpzVariantRender_(data, id) { const spzVariantTag = SPZCore.Dom.scopedQuerySelector(document.body, `#promotionSpzVariantTags-${id}`); spzVariantTag && SPZ.whenApiDefined(spzVariantTag).then((api) => { api.render(data, true); }); } // 执行经典捆绑最低购买数量更新 handleMinPurchaseQtyUpdate_(data, id) { const minPruchaseQty = SPZCore.Dom.scopedQuerySelector(document.body, `#promotionMinPurchaseQty-${id}`); minPruchaseQty && SPZ.whenApiDefined(minPruchaseQty).then((api) => { api.render(data, true); }); } // 更新价格 updateProductPrice_(data) { const bottomBtnContainer = SPZCore.Dom.scopedQuerySelector(document.body, `#promotionBottomContainer`); if (data.length == 0) { bottomBtnContainer && SPZ.whenApiDefined(bottomBtnContainer).then((api) => { const renderInfo = { setting: this.bundleConfig, ...{ original_price: 0, received_discounts: 0, picked_qty: 0 } } api.render({original_price: 0, received_discounts: 0}, true); }); return; } const reqBody = { discount_id: this.discountId, customer: { customer_id: '', email: '', }, sales_channel: { sale_channel_type: "online", sale_channel_id: '337152' }, line_items: data } // 如果已经有一个请求在等待,那么取消这个请求 if (this.debounceTimer) { clearTimeout(this.debounceTimer); } this.debounceTimer = setTimeout(() => { this.xhr_.fetchJson(this.getDiscountPriceApi, { method: "post", body: reqBody }).then((res)=>{ // 更新商品列表价格 Object.keys(res.line_items).forEach((key) => { const currentProductPrice = SPZCore.Dom.scopedQuerySelector(document.body, `#appDiscountProductPrice-${key}`); currentProductPrice && SPZ.whenApiDefined(currentProductPrice).then((api) => { api.render(res.line_items[key], true); }); }); // 更新底部按钮总价/总折扣价 const picked_qty = data.reduce((acc, item) => { return acc + item.quantity; }, 0); bottomBtnContainer && SPZ.whenApiDefined(bottomBtnContainer).then((api) => { const data = { setting: this.bundleConfig, ...{ ...res.total_price, picked_qty } } api.render(data, true); }); }).catch((err)=>{ this.handleRequestError_(err); }).finally(()=>{ }) }, 100); } // 还原商品价格 resetProductPrice_(data) { const {price, compare_at_price, id} = data; const currentProductPrice = SPZCore.Dom.scopedQuerySelector(document.body, `#appDiscountProductPrice-${id}`); currentProductPrice && SPZ.whenApiDefined(currentProductPrice).then((api) => { api.render({total_received_discounts: price, total_price: compare_at_price}, true); }); } //处理与selector组件的交互 handleProductOption_(productId, show) { const currentProductOption = SPZCore.Dom.scopedQuerySelector(document.body, `#promotionSelectOption-${productId}`); currentProductOption && currentProductOption.toggleAttribute('show', show); const productSelector = SPZCore.Dom.scopedQuerySelector(document.body, `#promotionProductSelector`); productSelector && SPZ.whenApiDefined(productSelector).then((api) => { api.toggle_({option: productId, value: show}); }); } // 混搭弹窗内的前端库存校验 handleModalInventoryCheck_(data) { if(this.discountType == 'DT_MIX_MATCH_BUNDLE' || this.discountType == 'DT_CLASSIC_BUNDLE') { const currentVariantAddNum = this.modalVariantInfo.find((item) => item.variant_id == data.variant_id)?.quantity || 0; const quickShopBody = SPZCore.Dom.scopedQuerySelector(document.body, '#apps-discount-quick-shop-body'); if(!!data.variant && currentVariantAddNum == Number(data.variant.available_quantity)) { quickShopBody && quickShopBody.setAttribute('status', 'soldout'); } else { quickShopBody && quickShopBody.setAttribute('status', 'available'); } } else { return; } } // 添加商品子款式 renderVariantTag() { let variantInfo; const quickShopBody = SPZCore.Dom.scopedQuerySelector(document.body, '#apps-discount-quick-shop-body'); quickShopBody && SPZ.whenApiDefined(quickShopBody).then((api) => { variantInfo = api.getVariantsData(); const productId = variantInfo.product_id; const variantId = variantInfo.variant_id; const minPruchaseQtyRender = variantInfo.product.discount_min_purchase_qty || variantInfo.variant.discount_info.discount_min_purchase_qty; if(this.discountType === 'DT_MIX_MATCH_BUNDLE') { const index = this.productStyleInfo.findIndex((item) => item.variant_id == variantInfo.variant_id); if (index != -1) { this.productStyleInfo[index].quantity = Number(this.productStyleInfo[index].quantity) + Number(variantInfo.quantity); this.updateProductPrice_(this.productStyleInfo); } else { this.productStyleInfo.push(this.getFilteredVariants_(variantInfo)); // 若当前商品已选中,更新商品价格 const currentProductOption = SPZCore.Dom.scopedQuerySelector(document.body, `#promotionSelectOption-${productId}`); const isSelected = currentProductOption && currentProductOption.hasAttribute('selected'); isSelected && this.updateProductPrice_(this.productStyleInfo); } const selectedVariantsFilter = this.productStyleInfo.filter((item) => item.product_id == productId); this.handleSpzVariantRender_(selectedVariantsFilter, productId); this.handleProductOption_(productId, true); } else { if(this.discountInfo.enable_min_purchase_qty == true && this.discountInfo.min_purchase_qty_type == 'spu' && minPruchaseQtyRender > 1) { const index = this.modalVariantInfo.findIndex((item) => item.variant_id == variantId); if (index != -1) { this.modalVariantInfo[index].quantity = Number(this.modalVariantInfo[index].quantity) + 1; } else { this.modalVariantInfo.push(this.getFilteredVariants_(variantInfo, 'classic_spu')); } const modalVariantTag = SPZCore.Dom.scopedQuerySelector(document.body, '#promotionModalVariantTagRender'); modalVariantTag && SPZ.whenApiDefined(modalVariantTag).then((api) => { api.render(this.modalVariantInfo, true); }); this.handleModalInventoryCheck_(variantInfo); const selectedVariantsNum = this.modalVariantInfo.reduce((acc, item) => { return acc + item.quantity; }, 0); if(selectedVariantsNum == minPruchaseQtyRender) { this.handleSpzVariantRender_([this.getFilteredVariants_(variantInfo)], productId); this.productStyleInfo = this.productStyleInfo.filter((item) => item.product_id != productId).concat(this.modalVariantInfo); const renderData = this.productStyleInfo.filter((item) => item.product_id == productId).map((item) => { return { ...item, is_classic_bundle_product_list_variant_tag: true } }); const classicSpuTag = SPZCore.Dom.scopedQuerySelector(document.body, `#promotionClassicSpuTags-${productId}`); classicSpuTag && SPZ.whenApiDefined(classicSpuTag).then((api) => { api.render(renderData, true); }); this.updateProductPrice_(this.productStyleInfo); const quickView = SPZCore.Dom.scopedQuerySelector(document.body, '#apps-discount-quick-view'); quickView && SPZ.whenApiDefined(quickView).then((api)=>{ api.close(); }); this.modalVariantInfo = []; } else { return; } } // this.productStyleInfo 中已存在与productId, variantId都相同的商品 则直接return 关闭弹窗 const isExist = this.productStyleInfo.some((item) => item.product_id == productId && item.variant_id == variantId); if (isExist) { const quickView = SPZCore.Dom.scopedQuerySelector(document.body, '#apps-discount-quick-view'); quickView && SPZ.whenApiDefined(quickView).then((api)=>{ api.close(); }); return; } // 若 this.productStyleInfo 中已存在与productId相同的商品,则不再添加 否则替换 const index = this.productStyleInfo.findIndex((item) => item.product_id == productId); if (index != -1) { this.productStyleInfo[index] = this.getFilteredVariants_(variantInfo); } else { this.productStyleInfo.push(this.getFilteredVariants_(variantInfo)); } const selectedVariantsFilter = this.productStyleInfo.filter((item) => item.product_id == productId); this.handleSpzVariantRender_(selectedVariantsFilter, productId); this.handleMinPurchaseQtyUpdate_({discount_min_purchase_qty: minPruchaseQtyRender}, productId); this.updateProductPrice_(this.productStyleInfo); } const quickView = SPZCore.Dom.scopedQuerySelector(document.body, '#apps-discount-quick-view'); quickView && SPZ.whenApiDefined(quickView).then((api)=>{ api.close(); }); }); } // 单变体点击添加按钮 renderSingleVariant(data) { const { product_id } = data; const currentProduct = this.bundleProducts.find((product) => product.id == product_id); // 若当前商品已存在,则不再添加 而是更新数量 const index = this.productStyleInfo.findIndex((item) => item.product_id == product_id); if (index != -1) { this.productStyleInfo[index].quantity = Number(this.productStyleInfo[index].quantity) + 1; this.updateProductPrice_(this.productStyleInfo); } else { this.productStyleInfo.push(this.getFilteredVariants_(currentProduct, 'single')); } const renderProductArr = this.productStyleInfo.filter((item) => item.product_id == product_id); this.handleSpzVariantRender_(renderProductArr, product_id); this.handleProductOption_(product_id, true); } // 过滤选中商品的子款式 获取有用的信息 product_id,variant_id,price,compare_at_price,quantity,title,variant_title getFilteredVariants_(data, type = '') { const { id, title, variants, inventory_tracking, inventory_policy, inventory_quantity, product_type } = data; const { product_id, variant_id, variant, quantity, product, discount_min_purchase_qty } = data; const isSingle = type == 'single'; const variantData = isSingle ? (variants[0] || data) : variant; const productData = isSingle ? data : product; let item_quantity = 0; if (this.discountType === 'DT_MIX_MATCH_BUNDLE') { item_quantity = isSingle ? 1 : Number(quantity); } else if (type === 'classic_spu') { item_quantity = 1; } else { item_quantity = discount_min_purchase_qty || productData.discount_min_purchase_qty || variantData.discount_info.discount_min_purchase_qty || 1; } return { product_id: isSingle ? id : product_id, variant_id: variantData?.id || '', price: variantData?.price || '0.00', compare_at_price: variantData?.compare_at_price || '0.00', quantity: item_quantity, inventory_tracking: productData.inventory_tracking, inventory_policy: productData.inventory_policy, inventory_quantity: productData.inventory_quantity, product_type: productData.product_type || this.bundleProducts.find((item) => item.id == product_id)?.product_type || this.bundleProducts.find((item) => item.id == id)?.product_type || '', title: productData.title, variant_title: variantData?.options.map((option) => option.value).join('/') || '', is_multi_style: productData.variants.length > 1, } } handleLoading_ (event) { const { type, action } = event; const loadingElementId = type === 'product' ? '#discount-match-drawer-products_loading' : '#apps-discount-whole-loading'; const loadingElement = document.querySelector(loadingElementId); if (loadingElement) { SPZ.whenApiDefined(loadingElement).then((api) => { if (action === 'show') { api.show_(); } else { api.close_(); } }); } } handleSelectProduct(productArr) { // 从this.productStyleInfo 过滤出选中的商品 const selectedProducts = this.productStyleInfo.filter((item) => productArr.includes(item.product_id)); this.updateProductPrice_(selectedProducts); } // 渲染加购弹窗内容 async renderQuickShopModal(data){ this.handleLoading_({type: 'whole', action: 'show'}); this.xhr_.fetchJson(`/api/storefront/promotion/landing_page/product?product_id=${data.product_id}&discount_id=${this.discountId}&apply_scenario=1`, { method: "get", }).then(async(res)=>{ //flash主题放block有层级问题 if(/Flash/.test(window.C_SETTINGS.theme.merchant_theme_name) && document.querySelector(".productInfoSection")) { this.tempCss.zIndex = document.querySelector(".product-info-body").style.zIndex; document.querySelector('.product-info-body').style.zIndex="1048"; } this.handleLoading_({type: 'whole', action: 'close'}); const $quickShop = await SPZ.whenApiDefined(document.querySelector('#apps-discount-quick-view-render')); // 定义默认渲染的子款式 const selectedVariant = res.product.variants.find((v)=> (v.available && v.is_hit_discount)) || res.product.variants[0]; let selectedValues = {}; selectedVariant.options.length && selectedVariant.options.forEach(item => { selectedValues[item.name] = item.value; }) // 默认选中的 子款式、 options res.product.defaultSelectValues = selectedValues; let data = {...res.product, product:res.product, selectedVariant, show_classic_bundle_spu_style: this.show_classic_bundle_spu_style, discountType: this.discountType}; $quickShop.render(data); // 打开加购弹窗 SPZ.whenApiDefined(document.querySelector(`#apps-discount-quick-view`)).then((api)=>{ api.open(); }); }).catch((err)=>{ this.handleLoading_({type: 'whole', action: 'close'}); }) } // 删除商品子款式 deleteVariantTag(data) { const { product_id, variant_id } = data; if(this.discountInfo.enable_min_purchase_qty == true && this.discountInfo.min_purchase_qty_type == 'spu') { const modalProductVariants = this.modalVariantInfo.filter((item) => item.product_id == product_id && item.variant_id != variant_id); const modalVariantTag = SPZCore.Dom.scopedQuerySelector(document.body, '#promotionModalVariantTagRender'); modalVariantTag && SPZ.whenApiDefined(modalVariantTag).then((api) => { api.render(modalProductVariants, true); }); this.handleModalInventoryCheck_(data); this.modalVariantInfo = modalProductVariants; return; } const currentProductVariants = this.productStyleInfo.filter((item) => item.product_id == product_id && item.variant_id != variant_id); this.handleSpzVariantRender_(currentProductVariants, product_id); // 更新selectedVariants this.productStyleInfo = this.productStyleInfo.filter((item) => item.variant_id != variant_id); if(currentProductVariants.length > 0) { // currentProductVariants 中只要有一项是多款式商品,就更新价格 const isMultiStyle = currentProductVariants.some((item) => item.is_multi_style); isMultiStyle && this.updateProductPrice_(this.productStyleInfo); } else { this.handleProductOption_(product_id, false); this.resetProductPrice_(this.bundleProducts.find((item) => item.id == product_id)); } } // 加购弹窗未参与活动 加购按钮不可点击 TODO 拆出来 handleNotHitDiscount_(data) { const $quickShopBody = document.querySelector('#apps-discount-quick-shop-body'); //当前子框式未命中活动 if(data.variant.is_hit_discount == false) { $quickShopBody.setAttribute('variantstatus', 'notHitDiscount') } else { $quickShopBody.setAttribute('variantstatus', '') } } setupAction_() { // 子款式 未参与活动 this.registerAction('handleNotHitDiscount', (invocation) => { const data = invocation.args.data; this.handleNotHitDiscount_(data); }); // 渲染加购弹窗 this.registerAction('renderQuickShop', (invocation) => { const data = invocation.args; this.renderQuickShop_(data); }); this.registerAction('renderSingleVariant', (invocation) => { const data = invocation.args; this.renderSingleVariant(data); }); this.registerAction('getVariantInfo', (invocation) => { this.renderVariantTag(); }); this.registerAction('deleteVariantTag', (invocation) => { const data = invocation.args; this.deleteVariantTag(data); }); this.registerAction('getSelectedProduct', (invocation) => { const data = invocation.args.data; this.handleSelectProduct(data); }); //TODO 加购下单逻辑单独拆组件 this.registerAction('handleClick', (data) => { if(this.discountType == 'DT_CLASSIC_BUNDLE') { this.lineItems = this.productStyleInfo; } else { const selectedOptions = SPZCore.Dom.scopedQuerySelectorAll(document.body, '[id^="promotionSelectOption-"]'); const idArr = [...selectedOptions].reduce((acc, item) => { if (item.hasAttribute('selected')) { const optionValue = item.getAttribute('option'); if (optionValue) { acc.push(optionValue); } } return acc; }, []); this.lineItems = this.productStyleInfo.filter((item) => idArr.includes(item.product_id)); } const action = data.args.action === "cart"; if(action) { //add to cart this.xhr_ .fetchJson(this.batchAtcApi, { method: 'POST', body: { line_items: this.lineItems.map((item) => { return { product_id: item.product_id, variant_id: item.variant_id, quantity: Number(item.quantity) } }) } }) .then((data) => { setTimeout(() => { window.location.href = '/cart'; }); }) .catch(async (error) => { await error.then((data) => { this.handleRequestError_(data); }); }); } else { //checkout this.xhr_ .fetchJson(this.buyNowApi, { method: 'POST', body: { line_items: (this.lineItems || []).map((product) => { return { quantity: Number(product.quantity), variant_id: product.variant_id, note: product.note || '', properties: product.properties || {} } }), refer_info: { source: 'buy_now' } } }) .then(async (data) => { if (data.state === 'success') { window.location.href = data.data?.checkout_url; } this.handleRequestError_(data); }) .catch(async (error) => { await error.then((data) => { this.handleRequestError_(data); }); }); } }); this.registerAction('resetModalVariantInfo', () => { //flash主题放block有层级问题 if(/Flash/.test(window.C_SETTINGS.theme.merchant_theme_name) && document.querySelector(".productInfoSection")) { document.querySelector('.product-info-body').style.zIndex = this.tempCss.zIndex; } this.modalVariantInfo = []; }); this.registerAction('handleModalInventoryCheck', (invocation) => { const data = invocation.args.data; this.handleModalInventoryCheck_(data); }); }; }; SPZ.defineElement('spz-custom-discount-bundle-products', SpzCustomDiscountBundleProducts);
class SpzCustomDiscountBundle extends SPZ.BaseElement { constructor(element) { super(element); this.xhr_ = SPZServices.xhrFor(this.win); this.variant_id = '5d140d74-de4e-4439-b612-09631962097c'; this.discountCardApi = "\/api\/storefront\/promotion\/product_details_page\/card"; this.productsApi = "\/api\/storefront\/promotion\/product_page\/product\/list"; this.bundleRenderElement = "appDiscountProductBundle"; this.model = { loading: false, page: 2, limit: 20, params: { count: 0, has_more: false, sort: { by: "price", direction: "asc" } } } this.discountId = ""; this.discountType = ""; this.bundleProducts = []; //捆绑活动商品 this.buttomConfig = {};//总价及下方按钮配置 this.renderDiscount = this.win.SPZCore.Types.debounce(this.win, this.discountHandel.bind(this) , 500); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } async getDiscountCardList() { const productId = '3c8f4d64-db48-4fe5-a7c0-f1240f3c60e0'; const variantId = this.variant_id; const reqBody = { product_id: productId, variant_id: variantId, discount_types: ["DT_CLASSIC_BUNDLE","DT_MIX_MATCH_BUNDLE"], discount_methods: ["DM_AUTOMATIC"], customer: { customer_id: '', email: '', } } const data = await this.xhr_.fetchJson(this.discountCardApi, { method: "post", body: reqBody }).then(res => { return res; }).catch(err => { console.error(err); }) return data; }; async discountHandel() { const $bundle = document.querySelector(".app-discount-bundle-inner"); $bundle && SPZCore.Dom.removeElement($bundle); const data = await this.getDiscountCardList(); if(!data.discount_info || data.discount_info.discount_id === "0") { return; } //变量赋值 this.bundleProducts = data.product_info.product; this.buttomConfig = data.product_setting; this.discountId = data.discount_info.discount_id; this.discountType = data.discount_info.discount_type; this.model.params ={ count: data.product_info.count, has_more: data.product_info.has_more, sort: data.product_info.sort } //给捆绑组件传值 SPZ.whenApiDefined(document.getElementById("appDiscountBundleProductsFunc")).then((api) => { api.setBundleData(this.bundleProducts, this.buttomConfig, this.discountId, this.discountType, data.discount_info); }) document.querySelector(".app_discount_bundle").dataset.discountType = data.discount_info.discount_type; SPZ.whenApiDefined(document.getElementById(this.bundleRenderElement)) .then(apis => { apis.render(data,true).then(() => { SPZ.whenApiDefined(document.getElementById("bundleProductsRender")).then((api) => { api.render(data,true).then(() => { this.bindEvent_(); if(this.bundleProducts.length < 5) { document.querySelector(".app-discount-bundle-arrow-left").style.display="none"; document.querySelector(".app-discount-bundle-arrow-right").style.display="none"; } //经典捆绑渲染按钮 if(this.discountType === "DT_CLASSIC_BUNDLE") { SPZ.whenApiDefined(document.getElementById("promotionBottomContainer")).then((api) => { const buttonData = { setting: this.buttomConfig, ...data.product_info.total_price } api.render(buttonData, true); }) } }) }) }) .then(() => { document.querySelector(".app-discount-bundle-inner").classList.add("discount_bundle_" + data.product_setting.template_type || "vertical"); }); }); //本地调试 放商详block里 const isSection = document.querySelector( 'div[data-section-type^="shoplazza://apps/publicapp/blocks/discount_bundle/"] .app_discount_bundle' ); if(!isSection) { document.querySelector(".app_discount_bundle").classList.add("productInfoSection"); } }; // 获取加载的商品数据,拼接html模板 async loadData(cb) { // 请求数据 this.model.loading = true; //查询活动商品接口 const reqBody = { discount_id: this.discountId, page: this.model.page, limit: this.model.limit, "apply_scenario": "AS_ENTITLED_PRODUCT", sort: this.model.params.sort, sales_channel: { sale_channel_type: "online", sale_channel_id: '337152' }, product_id: '3c8f4d64-db48-4fe5-a7c0-f1240f3c60e0' } this.xhr_.fetchJson(this.productsApi, { method: "post", body: reqBody }).then(async(res)=>{ const count = res.count; this.model.params.has_more = res.has_more; if (count > 0) { this.model.page++; if (res.products && res.products.length > 0) { let products = res.products.map((product) => { return { ...product, url: appDiscountUtils.globalizePath(product.url), image_padding_bottom: appDiscountUtils.image_padding_bottom(product.image.width, product.image.height,'no-limit'), discount_type: this.discountType } }); // 获取商品列表渲染模板, dom挂载 const $content = document.querySelector(".app-discount-bundle-products"); this.templates_ = SPZServices.templatesForDoc(); this.templates_.renderTemplate(document.querySelector('#appDiscountBundleProductsTemplate'), products).then((el) => { const childNodes = el.querySelectorAll('.as-render-product-item'); if (childNodes && childNodes.length > 0) { $content.append(...childNodes); } }).then(() => { //重新渲染ljs-selector const productSelector = SPZCore.Dom.scopedQuerySelector(document.body, `#promotionProductSelector`); productSelector && SPZ.whenApiDefined(productSelector).then((api) => { api.init(); }); }); this.bundleProducts = [...this.bundleProducts, ...res.products]; SPZ.whenApiDefined(document.getElementById("appDiscountBundleProductsFunc")).then((api) => { api.setBundleData(this.bundleProducts); }) // 监听load去掉灰色背景 document.dispatchEvent(new CustomEvent('fire.load.img')); // 触发懒加载 cb && cb(products); window.lazyLoadInstance && window.lazyLoadInstance.update(); } } this.model.loading = false; }).catch((err)=>{ console.error(err); this.model.loading = false; }) }; setupAction_() { this.registerAction('shiftMove', (data) => { const $el = document.querySelector(".app-discount-bundle-products"); const action = data.args.direct === "right"; const scrollwidth = action ? $el.offsetWidth : -$el.offsetWidth; $el.scrollBy({ left: scrollwidth, behavior: 'smooth' }); }); }; bindEvent_() { // 监听子款式切换,重新渲染 document.addEventListener('dj.variantChange', async(event) => { const variant = event.detail.selected; if (variant.product_id == '3c8f4d64-db48-4fe5-a7c0-f1240f3c60e0') { this.variant_id = variant.id; } this.renderDiscount(); }); // 监听滚动,请求数据 const $el = document.querySelector(".app-discount-bundle-products"); if($el) { $el.addEventListener("scroll", this.win.SPZCore.Types.debounce( this.win, () => { const isLeft = $el.scrollLeft === 0; const isRightEnd = $el.scrollLeft + $el.offsetWidth + 10 >= $el.scrollWidth; const isBottomEnd = $el.scrollTop + $el.clientHeight + 10 >= $el.scrollHeight; const isEnd = isBottomEnd && isRightEnd; if(isEnd && this.model.params.has_more && !this.model.loading) { this.loadData(); } }, 50 )) }; }; buildCallback() { this.setupAction_(); }; mountCallback() { this.renderDiscount(); this.bindEvent_(); }; } SPZ.defineElement('spz-custom-discount-bundle', SpzCustomDiscountBundle);
Kundenbewertungen

Das sagen unsere Kunden:

Kommentare veröffentlichen
Bewertungen der Kunden
Wow, du bist ganz unten angekommen
Neueste
Am meisten gemocht
Höchste Bewertungen
Niedrigste Bewertungen
×
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.