🔥Last Day 50% OFF - Fuutreo 50 Pcs/100PCS Halloween Favor Bags Transparent Pumpkin Sealed Pouches🍬

people are viewing this right now
$19.98  - $27.99
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = 'd7574ee3-b987-4e51-ae27-f3af64b82892'; this.isRTL = SPZ.win.document.dir === 'rtl'; this.isAddingToCart_ = false; // 加购中状态 } static deferredMount() { return false; } buildCallback() { this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); this.setupAction_(); this.viewport_ = this.getViewport(); } mountCallback() { this.init(); // 监听事件 this.bindEvent_(); } async init() { this.handleFitTheme(); const data = await this.getDiscountList(); this.renderApiData_(data); } async getDiscountList() { const productId = '33cde13f-25b0-4392-8536-04ac95c14b79'; const variantId = this.variant_id; const productType = 'default'; const reqBody = { product_id: productId, variant_id: variantId, discount_method: "DM_AUTOMATIC", customer: { customer_id: window.C_SETTINGS.customer.customer_id, email: window.C_SETTINGS.customer.customer_email }, product_type: productType } const url = `/api/storefront/promotion/display_setting/text/list`; const data = await this.xhr_.fetchJson(url, { method: "post", body: reqBody }).then(res => { return res; }).catch(err => { this.setContainerDisabled(false); }) return data; } async renderDiscountList() { this.setContainerDisabled(true); const data = await this.getDiscountList(); this.setContainerDisabled(false); // 重新渲染 抖动问题处理 this.renderApiData_(data); } clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } async renderApiData_(data) { const parentDiv = document.querySelector('.automatic_discount_container'); const newTplDom = await this.getRenderTemplate(data); if (parentDiv) { parentDiv.innerHTML = ''; parentDiv.appendChild(newTplDom); } else { console.log('automatic_discount_container is null'); } } doRender_(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { this.clearDom(); this.element.appendChild(el); }); } async getRenderTemplate(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, { ...renderData, isRTL: this.isRTL }) .then((el) => { this.clearDom(); return el; }); } setContainerDisabled(isDisable) { const automaticDiscountEl = document.querySelector('.automatic_discount_container_outer'); if(isDisable) { automaticDiscountEl.setAttribute('disabled', ''); } else { automaticDiscountEl.removeAttribute('disabled'); } } // 绑定事件 bindEvent_() { window.addEventListener('click', (e) => { let containerNodes = document.querySelectorAll(".automatic-container .panel"); let bool; Array.from(containerNodes).forEach((node) => { if(node.contains(e.target)){ bool = true; } }) // 是否popover面板点击范围 if (bool) { return; } if(e.target.classList.contains('drowdown-icon') || e.target.parentNode.classList.contains('drowdown-icon')){ return; } const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { node.classList.remove('open-dropdown'); }) // 兼容主题 this.toggleProductSticky(true); }) // 监听变体变化 document.addEventListener('dj.variantChange', async(event) => { // 重新渲染 const variant = event.detail.selected; if (variant.product_id == '33cde13f-25b0-4392-8536-04ac95c14b79' && variant.id != this.variant_id) { this.variant_id = variant.id; this.renderDiscountList(); } }); } // 兼容主题 handleFitTheme() { // top 属性影响抖动 let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ productInfoEl.classList.add('force-top-auto'); } } // 兼容 wind/flash /hero 主题 (sticky属性影响 popover 层级展示, 会被其他元素覆盖) toggleProductSticky(isSticky) { let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ if(isSticky) { // 还原该主题原有的sticky属性值 productInfoEl.classList.remove('force-position-static'); return; } productInfoEl.classList.toggle('force-position-static'); } } setupAction_() { this.registerAction('handleDropdown', (invocation) => { const discount_id = invocation.args.discount_id; const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { if(node.getAttribute('id') != `automatic-${discount_id}`) { node.classList.remove('open-dropdown'); } }) const $discount_item = document.querySelector(`#automatic-${discount_id}`); $discount_item && $discount_item.classList.toggle('open-dropdown'); // 兼容主题 this.toggleProductSticky(); }); // 加购事件 this.registerAction('handleAddToCart', (invocation) => { // 阻止事件冒泡 const event = invocation.event; if (event) { event.stopPropagation(); event.preventDefault(); } // 如果正在加购中,直接返回 if (this.isAddingToCart_) { return; } const quantity = invocation.args.quantity || 1; this.addToCart(quantity); }); } // 加购方法 async addToCart(quantity) { // 设置加购中状态 this.isAddingToCart_ = true; const productId = '33cde13f-25b0-4392-8536-04ac95c14b79'; const variantId = this.variant_id; const url = '/api/cart'; const reqBody = { product_id: productId, variant_id: variantId, quantity: quantity }; try { const data = await this.xhr_.fetchJson(url, { method: 'POST', body: reqBody }); // 触发加购成功提示 this.triggerAddToCartToast_(); return data; } catch (error) { error.then(err=>{ this.showToast_(err?.message || err?.errors?.[0] || 'Unknown error'); }) } finally { // 无论成功失败,都重置加购状态 this.isAddingToCart_ = false; } } showToast_(message) { const toastEl = document.querySelector("#apps-match-drawer-add_to_cart_toast"); if (toastEl) { SPZ.whenApiDefined(toastEl).then((apis) => { apis.showToast(message); }); } } // 触发加购成功提示 triggerAddToCartToast_() { // 如果主题有自己的加购提示,则不显示 const themeAddToCartToastEl = document.querySelector('#add-cart-event-proxy'); if (themeAddToCartToastEl) return; // 显示应用的加购成功提示 this.showToast_("Added successfully"); } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {}); this.action_.trigger(this.element, name, event); } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } } SPZ.defineElement(TAG, SpzCustomProductAutomatic);
class SpzCustomDiscountBundle extends SPZ.BaseElement { constructor(element) { super(element); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } mountCallback() {} unmountCallback() {} setupAction_() { this.registerAction('showAddToCartToast', () => { const themeAddToCartToastEl = document.querySelector('#add-cart-event-proxy') if(themeAddToCartToastEl) return const toastEl = document.querySelector('#apps-match-drawer-add_to_cart_toast') SPZ.whenApiDefined(toastEl).then((apis) => { apis.showToast("Added successfully"); }); }); } buildCallback() { this.setupAction_(); }; } SPZ.defineElement('spz-custom-discount-toast', SpzCustomDiscountBundle);
Style:  Pumpkin🎃
Item Package Quantity:  50
Quantity

Description

Description

SHIPPING WORLDWIDE. 
💯Payments Via PayPal® and CreditCard.
⭐Fast refund Guarantee>> Partial or full refund depends on the situation.
📦Orders will not incur additional customs duties.
📞 Tracking Number for Every Order>>Click here to👉 


About This Halloween Goodie Bags Bulk

🎃  Halloween Goodie Bags (50Pcs) — trick-or-treat must-have! Zipper closure + handles for easy carry, 4 fun designs fit candies/favors. Perfect for parties, classrooms, bulk needs—sturdy plastic lasts all night. Grab now for hassle-free Halloween prep (great value for bulk!)! ✨

Halloween Treat Bags with Handle & Zipper for Kids Party Favor Supplies

Halloween Candy Bags with Handles is perfect for creating a memorable trick-or-treating experience. With 8 different bag designs. these bags provide a delightful and personalized touch to your Halloween festivities.

Trick or Treat Bags Bulk

Party Favors Goodie Bags for Halloween

Diverse Designs. These charming cauldron-shaped treat bags feature cute Halloween themes perfect for younger kids: friendly ghosts, smiling pumpkins, playful owls, cute black cats, silly monsters, happy spiders, and festive text like "Trick or Treat" and "Happy Halloween."

Plastic Snacks Bags for Kids Party Favor

Stand Up Plastic Gift Bags with Clear Window

These reusable halloween stand-up pouches with handles measure approximately 7 x 8 x 2.4 inches (17.5 x 20 x 6 cm), Made from food polyethylene and polypropylene plastic, The bottom of the bag can be expanded, and the bag can stand upfor easy store.

Quality Reusable Halloween Gift Zipper Bags

Perfect for Halloween treats or holiday gifts!

Usage recommendation: Pinch both sides of the bag opening with your thumb and index finger, and open the bag with both hands.Thumbs are close to the zipper, and both hands forcefully open it.

Halloween Trick or Treat Candy Bags for Event Party Favor Supplies

Our Halloween Goodie Bags with Handles are the perfect decoration for your Halloween party. They are designed to enhance the joy and excitement of trick-or-treating, ensuring that every child receives their Halloween treats in style.

Product Description:

  • Value Package: Celebrate Halloween with a treat-filled surprise — you'll get 50 pcs pumpkin-themed Halloween candy bags! The generous quantity makes it easy to share spooky fun and festive goodies at trick or treat events or Halloween parties
  • Exquisite Design: These Halloween gift bags are shaped like pumpkin baskets, printed with various sweets and snacks. A see-through front window adds a fun peek-inside touch while making storage and display effortless
  • Practical Zipper Design: Each pumpkin candy bag features a convenient zip closure — easy to open and reseal, helping to keep candies fresh and secure. Ideal for Halloween treat exchanges, party games, and spooky giveaways
  • Wide Applications: These Halloween pumpkin treat bags are great for trick-or-treat events, haunted house parties, school Halloween festivals, or spooky birthday themes. Their adorable design adds charm to any setup and delights guests of all ages

❤️Thank you very much for visiting our store. Have a nice shopping day❤️

NOTE:

Our Facebook Official Customer Feedback Score Has Reached 4.9 out of 5. The score is better than 98% of other Ecommerce businesses who sell products through Facebook ads. We take very seriously our product quality and customer service. 

CERTIFICATION

HOW TO PAY

✅Payments Via PayPal®Debit and CreditCard.Add to cart first, and Check out, then select Shipping method and Payment method.
✅If you checkout with a Debit / Credit Card, just enter your * Card Number, * Expiration Date, and * Secure Code.

💐WHY US

We work directly with manufacturers all over the world to ensure the best quality of our products. We have a Quality Control department which helps us to keep our promise!
  • 🔥Price is always competitive.
  • 😊Awesome Customer Service.
  • 🏆Amazing products along with High Quality.
  • 🍭Read reviews from our lovely customers.

The Checkout Process is Guaranteed to be 100% Safe and Secure with Visa, Mastercard, AMex, Discover, Apple Pay or PayPal.

100% Satisfaction Guaranteed With Every Order.

🌎Worldwide Shipping✈  

Please note that shipping is insured. However, you may receive your items earlier. Tracking Numbers will ALWAYS be sent so you can track it every step of the way! Cool things are worth waiting for! 😉