🛋️ Bamboo Sofa Arm Tray - Anti Falling Couch Arm Tray Table

people are viewing this right now
$49.99  - $79.99
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = 'c504f532-423b-4ed9-a6f8-8507cb2cd7d5'; 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 = '02b0556a-91ed-4534-bcc4-06bee8143075'; 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 == '02b0556a-91ed-4534-bcc4-06bee8143075' && 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 = '02b0556a-91ed-4534-bcc4-06bee8143075'; 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);
Style:  Style 1
Qty:  Buy 1
Quantity

Description

Description

We’ve all been there — trying to keep your drink, snacks, phone, and remote all within reach while comfortably lounging on the couch. It’s frustrating when everything keeps slipping off the armrest or getting scattered around. That’s where the Bamboo Sofa Arm Tray comes in to save the day!


Say Goodbye to a Cluttered Sofa

Enjoy a tidy, comfortable seating area with the Bamboo Sofa Arm Tray. Say goodbye to having your drink, snacks, phone, and remote scattered around the couch. This tray fits most sofa armrests and allows you to keep everything you need within easy reach, making it perfect for movie nights, lounging, or quick snacks.

Features You’ll Love


🛋️ Suitable for Various Sofa Armrests

  • The Bamboo Sofa Arm Tray fits most sofa armrests, including wide armrests, flat armrests, rolled armrests, and straight armrests.

  • It can be placed on the armrest or used flat as a laptop tray, beverage holder, food tray, or placemat. Perfect for a versatile living room experience.

🍹 Say Goodbye to Clutter

  • Keep drinks, snacks, your phone, and remotes within arm’s reach, preventing a cluttered, messy sofa.

  • Whether it’s a cup of coffee, some chips, or a glass of water, this tray keeps everything organized for maximum convenience.

🛠️ Detailed Design for Maximum Utility

  • Spacious Surface: Can hold drinks, snacks, remotes, keys, and more. The edge design prevents spills and keeps items securely in place.

  • Foldable: Easy to store when not in use—simply fold and tuck it away.

  • Non-slip EVA Felt Pad: Ensures the tray stays securely in place on your sofa armrest and prevents scratches.

🌱 Safe and Natural Materials

  • Crafted from fresh, natural bamboo, the Bamboo Sofa Arm Tray is eco-friendly and safe for your home.

  • Bamboo’s natural texture complements any living room décor and brings a fresh, earthy feel to your home.

  • Easy to Clean: Wipe down with a damp cloth for simple maintenance.

💺 Ideal Coffee Table Alternative

  • The Bamboo Sofa Arm Tray makes an ideal alternative to bulky coffee tables, offering a convenient surface for everything you need while relaxing on the couch.

  • No Assembly Required: Simply place it on your sofa armrest and use! Perfect for quick set-up and easy use.


💬 Customer Reviews

⭐️⭐️⭐️⭐️⭐️
"A Must-Have for Any Sofa!"
“I love this tray! It’s perfect for keeping my coffee, phone, and snacks within reach. The foldable design is so convenient. Plus, it looks great on my sofa armrest!”
Rachel T.

⭐️⭐️⭐️⭐️⭐️
"Perfect for Movie Nights!"
“This bamboo tray is so handy. I use it every time I sit down to watch TV. It holds everything I need and keeps my couch clutter-free. So easy to clean too!”
John S.

⭐️⭐️⭐️⭐️⭐️
"Stylish and Practical!"
“I didn’t know I needed this until I got it. It fits perfectly on my sofa armrest, and the non-slip pad keeps it secure. Great for holding my tea and remote while I relax!”
Jessica W.

⭐️⭐️⭐️⭐️⭐️
"Great Addition to My Living Room!"
“The bamboo material looks great and feels durable. It’s nice to have a place to keep my things while watching TV. I recommend this for anyone who needs a little more organization.”
David P.


Product Specifications

  • Material: High-quality natural bamboo

  • Weight: 2.43 lbs

  • Foldable Design: Easy to store and transport

  • Non-Slip Backing: EVA felt pad prevents slipping and protects furniture

  • Care Instructions: Wipe clean with a damp cloth


About This Product

Color: Bamboo
Material: Bamboo
Shape: Rectangular
Tray Type: Bamboo Tray


🧭 How to Use Your Bamboo Sofa Arm Tray

1️⃣ Place It on the Armrest: Lay the tray flat on your sofa armrest or use it on any flat surface for additional purposes.
2️⃣ Adjust for Fit: Ensure it fits snugly on your armrest (fits armrests from 6.7 to 18 inches wide).
3️⃣ Keep Items Organized: Place your drink, snacks, remote, and phone neatly on the tray.
4️⃣ Enjoy: Relax and enjoy your organized space!
5️⃣ Fold and Store: When not in use, fold the tray and store it easily until next time.


Frequently Asked Questions

Q: Will this tray fit my sofa armrest?
✅ Yes! The Bamboo Sofa Arm Tray fits most armrests from 5.12 inches to 16.14 inches in width, whether they are flat, rolled, or straight. It’s versatile and adaptable for different sofa types.

Q: How do I clean the tray?
✅ Simply wipe the tray with a damp cloth to keep it clean. It’s easy to maintain and stay looking great.

Q: Can I use the tray for things other than drinks and snacks?
✅ Absolutely! The tray is multi-purpose and can also be used as a laptop tray, food tray, or even a placemat for various occasions.

Q: Is the tray sturdy?
✅ Yes, the tray is made from high-quality bamboo and has an EVA non-slip felt pad to prevent slipping and ensure stability while using.

Q: Is the tray suitable for outdoor use?
✅ While it’s perfect for indoor use, we recommend keeping it indoors to preserve the bamboo material. It’s not designed for outdoor conditions.


💎 Our Promise

We stand by the quality of our Bamboo Sofa Arm Tray. If you are not completely satisfied with your purchase, we offer a 30-day satisfaction guarantee. If the item is damaged or doesn’t meet your expectations, we’ll provide a replacement or full refund .


🛋️ Order Now and Keep Your Sofa Organized!

Make your life easier with the Bamboo Sofa Arm Tray. No more reaching for your drink, phone, or remote — keep everything you need within arm’s reach and add a touch of style to your living room!

🛒 Order Yours Today and Enjoy a Clutter-Free Sofa Experience!