3D Beaded Flower Pot DIY Gift Kit – Handmade Keepsake for Parents, Grandparents, Teachers & Little Friends
3D Beaded Flower Pot DIY Gift Kit – Handmade Keepsake for Parents, Grandparents, Teachers & Little Friends
3D Beaded Flower Pot DIY Gift Kit – Handmade Keepsake for Parents, Grandparents, Teachers & Little Friends
3D Beaded Flower Pot DIY Gift Kit – Handmade Keepsake for Parents, Grandparents, Teachers & Little Friends
3D Beaded Flower Pot DIY Gift Kit – Handmade Keepsake for Parents, Grandparents, Teachers & Little Friends
3D Beaded Flower Pot DIY Gift Kit – Handmade Keepsake for Parents, Grandparents, Teachers & Little Friends
3D Beaded Flower Pot DIY Gift Kit – Handmade Keepsake for Parents, Grandparents, Teachers & Little Friends
3D Beaded Flower Pot DIY Gift Kit – Handmade Keepsake for Parents, Grandparents, Teachers & Little Friends

3D Beaded Flower Pot DIY Gift Kit – Handmade Keepsake for Parents, Grandparents, Teachers & Little Friends

$19.99 $39.98
Save $19.99
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = '1f14bf0f-02a8-4d37-8744-25ab66903398'; 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 = '82a15695-3413-4350-9652-feae62255d8d'; 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 == '82a15695-3413-4350-9652-feae62255d8d' && 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 = '82a15695-3413-4350-9652-feae62255d8d'; 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() { // 同一页可能有多个 block 各自渲染本 snippet,导致逻辑元素 spz-custom-discount-toast(#appsAddCartToastFunc) 重复。 // 仅保留 DOM 中第一个实例,其余重复实例移除自身,保证逻辑元素及其 action 引用(appsAddCartToastFunc)唯一。 const funcs = document.querySelectorAll('#appsAddCartToastFunc'); if (funcs.length > 1 && this.element !== funcs[0]) { this.element.remove(); return; } // 全局折扣 toast 的弹出点分散在多个模板/组件里(含声明式 @atcError),无法逐一在弹出前前置, // 故挂载时幂等地去重并挂到 body;加购 toast 改为弹出前按需去重(见 showAddToCartToast) this.ensureSingleToastInBody_('cart_match_discount_toast_wrap'); } unmountCallback() {} // 同一页面可能有多个 block 各自渲染本 toast snippet(如商详的 discount_automatic + 购物车抽屉里的折扣横幅), // 导致 toast 外层出现重复 id。重复 id 下 getElementById/querySelector 及 SPZ 动作引用都只命中第一个, // 且被关进抽屉的那份会被抽屉的 transform/overflow 裁剪/错位。这里在挂载时幂等去重: // 只保留一份、移除多余的,并把保留的挂到 body(body 是 position:fixed 最安全的落点,避免被任何祖先裁剪)。可反复调用。 ensureSingleToastInBody_(id) { const els = Array.from(document.querySelectorAll('#' + id)); if (!els.length) return; els.slice(1).forEach((el) => el.remove()); const keep = els[0]; if (keep.parentNode !== document.body) { document.body.appendChild(keep); } } // 主题购物车抽屉是否打开 isInCartDrawer_() { return !!document.querySelector('[data-section-type="cart_drawer"] spz-sidebar[open]'); } setupAction_() { this.registerAction('showAddToCartToast', () => { // 抽屉内加购:主题本就不会有加购效果,统一弹插件自己的 toast // 非抽屉:主题有加购代理则沿用主题加购效果,否则插件兜底 const proxyEl = document.getElementById('add-cart-event-proxy'); const inDrawer = this.isInCartDrawer_(); if (!inDrawer && proxyEl) { return; } // 弹出前按需去重并挂到 body(幂等),避免重复 id 命中错对象或被抽屉裁剪/错位 this.ensureSingleToastInBody_('apps_add_cart_toast_wrap'); 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

Please select a style

Quantity

Apple Pay Google Pay Visa Mastercard PayPal American Express Discover
Free shipping on orders over $59
Secure checkout with trusted payment options
30-day returns if needed

 

❤️❤️❤️❤️Every love is unique❤️❤️❤️❤️


A sweet little DIY gift kids can make with love. 🌼

This 3D Beaded Flower Pot DIY Kit turns simple craft time into a meaningful keepsake for the people who help kids grow — Mom, Dad, Grandma, Grandpa, teachers, and little best friends.
Each kit includes colorful beads, easy step-by-step instructions, and sweet thank-you tags, so kids can create a handmade flower gift that feels personal, thoughtful, and full of heart.

 


A Handmade Gift That Feels More Personal

Some gifts are bought in a hurry.
This one is made with little hands, colorful beads, and a whole lot of love.
The 3D Beaded Flower Pot DIY Kit is designed for kids and parents to make together, then gift to someone special. Whether it is for Mom and Dad, Grandma and Grandpa, a favorite teacher, or a little best friend, each finished flower pot becomes more than a cute decoration — it becomes a keepsake they can actually display and remember.


Made for the People Who Help Kids Grow

Fresh flowers are beautiful, but they fade.
Cards are sweet, but they often get put away.
This little beaded flower pot stays on a desk, shelf, classroom table, or nightstand as a daily reminder of love, gratitude, and childhood memories.
It is especially meaningful for:
Mom & Dad who support every little step
Grandma & Grandpa who treasure handmade gifts
Teachers who help children learn and grow
Little friends who love sharing something sweet


Why choose us

Most small gifts feel too common. Mugs, cards, candles, and fresh flowers are everywhere.
This kit gives customers a stronger reason to buy: it is not just a gift — it is an experience. Kids enjoy making it, parents enjoy doing it with them, and the person receiving it gets something made especially for them.
Compared with ordinary finished decorations, this product has more emotional value.
Compared with fresh flowers, it lasts longer.
Compared with common teacher gifts, it feels more personal and less repetitive.


Easy, Sweet, and Gift-Ready

Each kit comes with colorful beads, simple instructions, materials, and sweet message tags. Kids can enjoy the creative process with adult help, then proudly give the finished flower pot as a heartfelt handmade gift.
Small enough to be affordable.
Cute enough to catch attention.
Meaningful enough to be kept.


 

Product Details

Product Name: 3D Beaded Flower Pot DIY Gift Kit
Craft Type: 3D beaded flower pot DIY kit
Material: Round acrylic beads, wire/thread, tool, printed guide
Difficulty: Kid-friendly with adult help
Recommended Age: 6+ with adult supervision
Use For: Handmade gift, parent-child craft, teacher gift, grandparents gift, friendship gift, desk décor
Package Type: Gift-style box

Parent Gift Set
2-piece set. Designed for Mom & Dad. A sweet handmade thank-you gift from kids.
Size: Large size. Each finished flower pot is approx. 4.7"–5.1" H × 2.6"–2.8" W (12–13 cm H × 6.5–7 cm W).

Grandparents Gift Set
2-piece set. Designed for Grandma & Grandpa. A warm keepsake for family love.
Size: Large size. Each finished flower pot is approx. 4.7"–5.1" H × 2.6"–2.8" W (12–13 cm H × 6.5–7 cm W).

Teacher Gift Kit
1-piece set. Designed for teachers. Small, thoughtful, and perfect for classroom gifting.
Size: Large size. Finished flower pot is approx. 4.7"–5.1" H × 2.6"–2.8" W (11.5–12.5 cm H × 6.5–7 cm W).

Little Friends Gift Set
4-piece mini set. Designed for kids to share with best friends, classmates, and playdate buddies.
Size: Small size. Each finished mini flower pot is approx. 3.1"–3.7" H × 2.0"–2.3" W (8–9.5 cm H × 5–5.8 cm W).


Shop With Confidence 🌟

📦 Carefully Packed
Every order is packed with care to help your items arrive safely.

🚚 Tracked Delivery
Tracking details are provided once your order ships.

💳 Secure Checkout
Pay safely with PayPal and major credit cards.

🔄 30-Day Support
If something isn’t right, contact us within 30 days and we’ll help.

💬 Friendly Customer Care
Questions before or after ordering? Our support team is here to help.

Our Guarantee
We want every order to feel simple, safe, and worry-free. If something isn’t right with your order, contact us with your order number and we’ll do our best to make it right.