Buy $69.98 Free shipping

⏰Promotion 49% OFFđŸ’„ - Retro Game Console

$29.98
$58.78
Save $28.80
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = '3975dc18-87e2-4f4a-9b91-96721bd626cd'; 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 = 'fbf790ab-b5f9-46f7-9e3f-a4074cf714c4'; 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 == 'fbf790ab-b5f9-46f7-9e3f-a4074cf714c4' && 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 = 'fbf790ab-b5f9-46f7-9e3f-a4074cf714c4'; 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);
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 = "3975dc18-87e2-4f4a-9b91-96721bd626cd"; // äżƒé”€æŽ»ćŠšæ•°æź 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 == 'fbf790ab-b5f9-46f7-9e3f-a4074cf714c4' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } getData() { const reqBody = { product_id: "fbf790ab-b5f9-46f7-9e3f-a4074cf714c4", 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);
Type
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-1651799308132').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);
Description

đŸ”„7185 sold in last 24 hoursđŸ”„

đŸ”„99.3% of Reviewers Recommends This Product.đŸ”„

🎁💐 Don't forget to get some for your family and friends as it's an unique gift idea.


THE VIRAL SENSATION IS BACK AND BETTER!

The NEW Video Game Stick comes pre-loaded with 600/1700 Classic 8-Bit Games that you used to skip homework for!

Grab Your Friend, and kick it like 1988!

 

Supports one or two players to play the game at the same time, making you more enjoyable with your kids or friends

Play a huge selection of your favorite 8-bit games from back in the day. This console will inject nostalgic memories instantly and provide you with endless hours of fun!

  • 800+ Games in an easy-to-navigate menu – No repeat!

  • HDMI connectivity for Big Screen Play

  • 2 Wireless controllers

  • Classic titles you spent hours playing when younger

  • Easy to transport to your friends’ place – great for parties!

Everything from the music to the block-like controllers will send you back to 1988 when 'gaming' started to take place. 

Things we upgraded:

  • Now You Can Save Your Game Progress

  • Smooth Gameplay - No Lag!

  • Wireless Remotes that have Further Reach

 

WHAT GAMES CAN I PLAY?

Play 600/1700 games of the very best NES Retro Classic Video Games, and you won’t be disappointed! 

REMEMBER THESE GAMES?

Pick Your Favorite Game to Choose From...There are TONS!
You asked and we delivered
The ULTIMATE 8-BIT RETRO GAME CONSOLE!


🎄Limited Quantity, it will sell out fast.

🎁Remember to buy some for your friends. It's the unique gift idea!

😊If you are not satisfied with the goods received, please contact us with in 15 days after receiptđŸ“Șsupport@spelleternity.net, we will give you the best help! Please don't worry!

🍭Fast refund>>Partial or full refund depend on the situation.
🚱Shipping>>Shipping worldwide.
⏰Handling time>> Priority is given to delivery after payment.
✈Fast Delivery>>We'll arrange the fastest shipping for you
💯Payments Via PayPal¼ and CreditCard.

It will sell out fast, Enjoy a discount now!!⚡