⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks
⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks

⏰Last Day Promotion-Today Only $19.99⏰Magnetic Blocks

Price

$60.00 $19.99
Save $40.01
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = 'a1774a28-a209-40d9-b93b-b63137dd2cff'; this.isRTL = SPZ.win.document.dir === 'rtl'; } 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 = 'b5824b98-0f3c-41f6-b0e2-86c88f29a42e'; 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 == 'b5824b98-0f3c-41f6-b0e2-86c88f29a42e' && 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(); }); } 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 SpzCustomDiscountFlashsale extends SPZ.BaseElement { constructor(element) { super(element); this.xhr_ = SPZServices.xhrFor(this.win); this.getFlashSaleApi = "\/api\/storefront\/promotion\/flashsale\/display_setting\/product_setting"; this.timer = null; this.variantId = "a1774a28-a209-40d9-b93b-b63137dd2cff"; // 促销活动数据 this.flashsaleData = {} } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.templates_ = SPZServices.templatesForDoc(); this.viewport_ = this.getViewport(); // 挂载bind函数 解决this指向问题 this.render = this.render.bind(this); this.resize = this.resize.bind(this); this.switchVariant = this.switchVariant.bind(this); } mountCallback() { // 获取数据 this.getData(); this.element.onclick = (e) => { const cur = this.win.document.querySelector(".app_discount_flashsale_desc"); if (this.flashsaleData.product_setting.is_redirection && appDiscountUtils.inProductBody(this.element) && e.target !== cur) { this.win.open(`/promotions/discount-default/${this.flashsaleData.discount_info.id}`); } } // 绑定 this.viewport_.onResize(this.resize); // 监听子款式切换,重新渲染 this.win.document.addEventListener('dj.variantChange', this.switchVariant); } unmountCallback() { // 解绑 this.viewport_.removeResize(this.resize); this.win.document.removeEventListener('dj.variantChange', this.switchVariant); // 清除定时器 if (this.timer) { clearTimeout(this.timer); this.timer = null; } } resize() { if (this.timer) { clearTimeout(this.timer) this.timer = null; } this.timer = setTimeout(() => { this.render(); }, 200) } switchVariant(event) { const variant = event.detail.selected; if (variant.product_id == 'b5824b98-0f3c-41f6-b0e2-86c88f29a42e' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } getData() { const reqBody = { product_id: "b5824b98-0f3c-41f6-b0e2-86c88f29a42e", product_type: "default", variant_id: this.variantId } this.flashsaleData = {}; this.win.fetch(this.getFlashSaleApi, { method: "POST", body: JSON.stringify(reqBody), headers: { "Content-Type": "application/json" } }).then(async (response) => { if (response.ok) { this.flashsaleData = await response.json(); this.render(); } else { this.clearDom(); } }).catch(err => { this.clearDom(); }); } clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } render() { this.templates_ .findAndRenderTemplate(this.element, { isMobile: appDiscountUtils.judgeMobile(), isRTL: appDiscountUtils.judgeRTL(), inProductDetail: appDiscountUtils.inProductBody(this.element), flashsaleData: this.flashsaleData, image_domain: this.win.SHOPLAZZA.image_domain, }) .then((el) => { this.clearDom(); this.element.appendChild(el); }) } } SPZ.defineElement('spz-custom-discount-flashsale', SpzCustomDiscountFlashsale);

edition

Please select a edition

qty

Please select a qty

Quantity

Free worldwide shipping
Free returns
Sustainably made
Secure payments
  • 【Magnetic Blocks】Let's spark creativity with magnetic blocks for kids! This magnetic building cubes will not collapse easily during construction, and can be freely combined to build anything they imagine, which promotes the growth of children's creativity.
  • 【Abundance of Gaming Elements】Including 100 magnetic cubes in 16 colors. Idea booklet with the storyline and beautiful patterns, keep them busy in clever ways. Perfect STEM toys help kids gain a deeper understanding of the structure and learn about magnetic properties!
  • 【Sensory Education Toys for Toddlers】Magnetic building cubes help kids learn, play, and build confidence while exploring construction. They attract toddlers' attention with their bell-like rustling sounds. These magnetic blocks promote creative thinking,it helps to promote kids’ creative thinking, concentration and patience, hand-eye coordination motor skills, cooperative skills, spatial and motor skills!
  • 【STEM Learning Building Blocks】Magnetic toys attract toddlers' attention and encourage screen-free play. Kids can imagine and create their dream buildings. Magnetic blocks for kids ages 4-8 spark creativity and develop motor skills.
  • 【Best Gift for Kids-Giving Idea】 Ideal for classrooms and popular with kids 3+, these magnetic cubes for kids let children imagine and create their dream buildings. Kids will have fun and learn through play. Perfect educational gifts for birthdays, Christmas, STEM, and school activities, making them great for parent-child bonding on weekends!
 
minecraft magnetic blocks
magnetic blocks
magnacraft
magnacraft minecraft
magnetic minecraft blocks
magnetic building cubes