๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ
๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ

๐ŸŽ 2026 New Year Surprise Gift: DIY Racetrack Racing Toy ๐Ÿš—โœจ

const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = '96b08404-4eb0-44b4-ab42-c78d2109bdd0'; 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 = '807208d8-ec99-43fb-9cfe-6912561816bc'; 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 == '807208d8-ec99-43fb-9cfe-6912561816bc' && 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 = '807208d8-ec99-43fb-9cfe-6912561816bc'; 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);

Price

$72.00 $35.99

color - Blue Runway

Please select a color

quantity

Please select a quantity

Quantity

/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);
SKU๏ผš-Blue Runway-Buy 1-A001031

Unleash the Ultimate Racing Adventure

The track stretches an impressive 13.1/16.4ft! This holiday season, spark your child’s imagination with the Flexible Racing Track Set—the ultimate fun gift! Kids can create thrilling loops, ramps, and daring drops, with every design bringing fresh excitement for an unforgettable Christmas adventure.

  • Cool & Flexible Racing Fun

This style racing set turns any space into a high-speed racetrack, where kids can design their own thrilling courses. Every race is packed with excitement and unique challenges, inspiring endless creativity and fun.

  • Flexible Track, Endless DIY

Crafted from child-safe, tear-resistant PE with a dual-track design, it bends into loops, jumps, and custom layouts. Built to handle countless twists, high-speed crashes, and even the most intense races without breaking.

  • Tool-Free Setup, Play Anywhere

With suction cups, the track sticks easily to windows, tiles, and other smooth surfaces. Connectors allow for endless expansion and creative designs. No tools required—kids can build on their own, and when playtime is over, just roll it up for easy storage.

  •  Multi-Scene Holiday Fun

From the living room floor to windows, tiles, or even furniture, this track turns any space into a thrilling raceway. Kids can race anywhere—at home, with friends, or on family trips—keeping the holiday spirit alive wherever they go.

  •  The Perfect Christmas Gift

Whether tucked under the Christmas tree or given as a birthday surprise, this racing track set is sure to bring a smile. From little ones building simple ramps to older kids creating epic loops, it grows with them, making every Christmas shine even brighter.


Product Specifications

  • Product Name: Flexible Racing Track Set

  • Material: Child-Safe PE

  • Set Includes:1 flexible track, 12 suction cups, 4 connectors, and 4 alloy cars/only 4 alloy cars
  • Racetrack Length: 13.1 Ft / 16.4Ft


Perfect For

  • Birthday gifts, holiday surprises, or everyday play

  • Kids who love racing, building, and hands-on creativity

  • Parents looking for an exciting, safe, and educational toy

  • Collectors who want a unique and versatile racing set


More Than Just a Toy—It’s a Memory
This Christmas, give more than a present—give the joy of building, the thrill of racing, and the pride of creating. Every race feels new, every design sparks wonder, and every holiday moment becomes unforgettable.

Bring home the magic this Christmas—because the best gifts are the adventures kids create themselves. โœจ

Hassle-Free Returns You Can Count On

โœ… Easy Process – Just reach out to us, and we’ll send you a prepaid return label.

Your satisfaction means everything to us. Shop worry-free knowing we’ve got you covered!