Handmade Wooden Fencing Puppets

Handmade Wooden Fencing Puppets

$19.99
$26.99
people are viewing this right now
Number of balloons included:
Please select a Number of balloons included
Quantity
Product was out of stock.
Product is unavailable.
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = '8ec08d68-47af-48e0-9161-b610e81cf755'; 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 = '6a321d8c-3914-49fc-b329-2c39fd70a5d1'; 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 == '6a321d8c-3914-49fc-b329-2c39fd70a5d1' && 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 = '6a321d8c-3914-49fc-b329-2c39fd70a5d1'; 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);

Description

  • 🔥🔥 Happily Handmade Wooden Fencing Puppets with Balloons !!! We Are Also Equipped with Colorful Balloons, Please Choose Them at the Same Time if Necessary!
  • 💥🎈🎈【 Whack a Balloon Game 】 Brace yourself for endless fun and laughter. In this crazy game each player tries to keep the balloon from popping; Guess who made the last BOOM of the balloon.
  • 💥🎈🎈【 Balloon Popping Game 】 This "Balloon Bamboo Man Battle" - an innovative and fast-paced wooden bots battle game crafted for two players. Engage in thrilling duels with handmade, intricately designed wooden fencing puppets that promise an adrenaline-pumping balloon fight like no other.
  • 💥🎈🎈【 Fun Two-Player Battle Between Balloon Man 】 Balloon bamboo man battle game-prick your opponent's balloon to win! Holding a sword and shield in each hand, the balloon man can be controlled to attack and block.
  • 💥🎈🎈【 Durable Handmade Materials 】 Each puppet is meticulously crafted, showcasing superior artistry and durable bamboo construction, making every battle a visually stunning experience.
  • 💥🎈🎈【 Adult Party Games for Groups 】 Brace yourself for an electrifying whirlwind of fun! This game's fast-paced balloon fight will keep you on your toes as you compete to whack the balloon atop your opponent's wooden fighter. Feel the thrill as you strategize and maneuver to outplay your rival in this lively and engaging competition.
  • 💥🎈🎈【 Bamboo Man Battle Action 】 Experience the thrill of combat as these wooden bots battle it out with balloon heads! This whack-a-balloon party game adds a unique twist to traditional dueling, challenging players to strike with precision and timing to ensure victory in the Balloon Bamboo Man Battle.
  • 💥🎈🎈【 Holiday Party Games 】 Unleash laughter and joy at any gathering with this wooden bots battle game. Perfect for parties or casual hangouts, it's a surefire way to create unforgettable moments and share the excitement of friendly competition, all while enjoying the whimsy of wooden fighters with balloon heads.
Brand NameJollyjute
Age Range DescriptionAdult
ManufacturerJollyjute

 

🌈🌈✨ Balloon Bamboo Man Battle !!! 🔥🔥

🔥🔥 Get ready to embrace the excitement and laughter this Balloon Bamboo Man Battle brings, as wooden fighters clash in a delightful and uproarious balloon fight experience! 🎈🎈🎈🎈

✅ Features:

✔️ You and your opponent control two wooden bots with balloon heads. Pop your opponent’s balloon head before they pop yours.

✔️ Experiment with different tactics to beat your opponent.

✔️ Made of solid wood material and connected with metal wires, it is not easy to be damaged and is very durable.

✔️ This tabletop game is interactive, action-packed and exciting.

✅ Specification:

● Name: Balloon Bamboo Man Battle.

● Material: wood.

● Color: As Shown.

● Weight: 200G.

● Size: 30cm*3mm/30cm*5mm.

✅ Package Included:

● 1 Set Balloon Bamboo Man Battle. OR 1SET Balloons.

✅ Note:

● Due to the difference of light and screen, the color of the item may be slightly different from the picture.

● Please allow a slight deviation in the measurement data and make sure you don't mind before ordering.

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

Free worldwide shipping

Enjoy free shipping on every order, delivered to your doorstep no matter where you are in the world.

Free returns

Shop with confidence with our hassle-free returns policy, ensuring you love what you buy.

Sustainably made

Designed with the planet in mind, all our products are committed to sustainable practices.

Secure payments

Your payment information is always protected with our advanced, encrypted checkout security.