{"product_id":"stackable-telescopic-closet-shelf-retractable-expandable-wardrobe-divider-board-adjustable-layered-partition-cabinet-organizer","title":"Expandable Cabinet Shelf Riser, No-Drill Metal Kitchen Shelf (3 Widths)","description":"\u003cp\u003e\u003cstrong\u003eTurn one cabinet shelf into two.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eMost kitchen cabinets have a lot of empty air between the shelves. This metal shelf stands on its own legs and adds a second level: plates underneath, mugs or bowls on top. It slides wider or narrower to fit the space. \u003cstrong\u003eNo drilling, no adhesive\u003c\/strong\u003e: it just sits on the shelf.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eExpands to fit:\u003c\/strong\u003e pull the two halves apart until it fits the width of your shelf.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eThree widths:\u003c\/strong\u003e S expands about 10.6–15 in (27–38 cm), M about 15–24.4 in (38–62 cm), L about 19.7–33.5 in (50–85 cm).\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSame depth and height for all sizes:\u003c\/strong\u003e about 10.6 in (27 cm) deep and 8.7 in (22 cm) tall.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMetal grid top\u003c\/strong\u003e in white or black. Stack two for a third level.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eQuick assembly:\u003c\/strong\u003e attach the legs to the shelf top. Nothing gets screwed into your cabinet.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBefore you order:\u003c\/strong\u003e measure the width and depth of your cabinet shelf and the height to the shelf above. You need at least 10.6 in of depth and more than 8.7 in of height, plus room for whatever you put on top. See our \u003ca href=\"\/pages\/size-fit-guide\"\u003eSize \u0026amp; Fit Guide\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003ePair it with:\u003c\/strong\u003e our \u003ca href=\"\/products\/non-slip-lazy-susan-turntable-cabinet\"\u003eNon-Slip Lazy Susan Turntable\u003c\/a\u003e for the back corners of the same cabinet. Orders with 2 or more items save 10% automatically at checkout.\u003c\/p\u003e\n\u003cp\u003eFree shipping to the contiguous US. Unused items can be returned within 30 days of delivery. See our \u003ca href=\"\/policies\/refund-policy\"\u003eReturns \u0026amp; Refunds\u003c\/a\u003e policy.\u003c\/p\u003e\n\n\u003c!-- hh-galixo v1: buy box (payment icons, add-ons, delivery, trust). Remove this whole block to undo. --\u003e\n\u003cdiv class=\"hb\" data-handle=\"stackable-telescopic-closet-shelf-retractable-expandable-wardrobe-divider-board-adjustable-layered-partition-cabinet-organizer\" hidden\u003e\n\u003cdiv class=\"hb-pay\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.hb{--g:#1f3d34;--line:#e3e3e3;font-size:15px;color:#2b2b2b}\n.product-form__quantity{display:none !important}\n.hh-tiers{background:#eef2ee;border:1px solid #d6e0d9;border-radius:14px;padding:12px 12px 6px}\n.hh-tier{background:#fff !important;border-radius:10px}\n.hh-tier.is-on{box-shadow:0 0 0 1px var(--g,#1f3d34)}\n.hh-tier input{width:20px !important;height:20px !important}\n.hh-tiers__note{padding:0 2px 6px}\n.hb-pay{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:12px 0 0}\n.hb-pay svg{width:38px;height:24px}\n.hb-add{margin:16px 0 0;border-radius:12px;background:#f2f2f0;padding:12px}\n.hb-add-h{font-weight:700;font-size:17px;color:#1d1d1d;margin:0}\n.hb-add-p{font-size:14px;color:#555;margin:3px 0 6px;line-height:1.45}\n.hb-item{display:flex;align-items:center;gap:10px;background:#fff;border-radius:8px;padding:9px 10px;margin-top:7px;cursor:pointer}\n.hb-item input{width:20px;height:20px;accent-color:var(--g);flex:0 0 20px;margin:0}\n.hb-item img{width:54px;height:54px;object-fit:cover;border-radius:6px;flex:0 0 54px}\n.hb-item-t{flex:1;min-width:0;font-size:14px;line-height:1.35}\n.hb-item-t small{display:block;color:#6b6b6b;font-size:12.5px}\n.hb-item-p{text-align:right;white-space:nowrap;font-weight:700}\n.hb-item-p span{display:block;font-weight:400;font-size:12.5px;color:#c0392b}\n.hb-item-p s{color:#8a8a8a;margin-left:4px}\n.hb-ship{text-align:center;margin:16px 0 0;font-size:15px;line-height:1.5}\n.hb-ship b{color:var(--g)}\n.hb-trust{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 18px;text-align:center;font-weight:700;font-size:13.5px;color:var(--g)}\n.hb-trust svg{display:block;margin:0 auto 5px;width:32px;height:32px}\n.hb-err{color:#c0392b;text-align:center;font-size:14px;margin-top:6px}\n.hb-item-a{color:inherit;text-decoration:underline;text-underline-offset:2px}\n.hb-item-img{display:block;flex:0 0 54px}\n.hb-ck{text-align:center;margin:0 0 16px;font-size:14px}\n.hb-ck a{color:var(--g);font-weight:600}\n\u003c\/style\u003e\n\u003cscript\u003e\n(() =\u003e {\n  const cs = document.currentScript;\n  const start = () =\u003e {\n  const root =(cs \u0026\u0026 cs.parentElement.querySelector('.hb')) || document.querySelector('.hb');\n  if (!root || root.dataset.ready) return;\n  root.dataset.ready = 1;\n  \/\/ what to offer under each product (handle -\u003e handles)\n  const PAIR = {\n    'non-slip-lazy-susan-turntable-cabinet': ['no-drill-under-sink-organizer-2-tier-pull-out', 'stackable-telescopic-closet-shelf-retractable-expandable-wardrobe-divider-board-adjustable-layered-partition-cabinet-organizer'],\n    'no-drill-under-sink-organizer-2-tier-pull-out': ['non-slip-lazy-susan-turntable-cabinet'],\n    'renter-starter-kit-door-storage-boxes-sponge-holder-drawer-dividers-labels': ['no-drill-under-sink-organizer-2-tier-pull-out', 'non-slip-lazy-susan-turntable-cabinet', 'stackable-telescopic-closet-shelf-retractable-expandable-wardrobe-divider-board-adjustable-layered-partition-cabinet-organizer'],\n    'stackable-telescopic-closet-shelf-retractable-expandable-wardrobe-divider-board-adjustable-layered-partition-cabinet-organizer': ['non-slip-lazy-susan-turntable-cabinet']\n  };\n  \/\/ which variant to offer as the add-on when it should not be the first available one\n  const PREF = { 'stackable-telescopic-closet-shelf-retractable-expandable-wardrobe-divider-board-adjustable-layered-partition-cabinet-organizer': 'White · M' };\n  \/\/ [min, max] business days to the door; only where the supplier's window is known\n  const SHIP = { 'no-drill-under-sink-organizer-2-tier-pull-out': [3, 7, 'Ships from a US warehouse'] };\n  \/\/ must match the store's automatic discounts: Buy 2+ items 10%, Buy 3+ items 15%\n  const pctFor = n =\u003e n \u003e= 3 ? 15 : n \u003e= 2 ? 10 : 0;\n\n  const money = c =\u003e '$' + (c \/ 100).toFixed(2);\n  const info = document.querySelector('.product__info-container');\n  const form = info \u0026\u0026 info.querySelector('form[action*=\"\/cart\/add\"][data-type=\"add-to-cart-form\"]');\n  if (!info || !form) return;\n  const blockOf = el =\u003e { while (el \u0026\u0026 el.parentElement !== info) el = el.parentElement; return el; };\n  const buyBlock = blockOf(form);\n  const qtyInput = () =\u003e info.querySelector('.product-form__quantity input[name=\"quantity\"]') || document.querySelector('input[name=\"quantity\"]');\n  const mainQty = () =\u003e Math.max(1, parseInt((qtyInput() || {}).value, 10) || 1);\n\n  \/\/ Galixo order: variant picker -\u003e tiers -\u003e button -\u003e payment -\u003e add-ons -\u003e delivery -\u003e trust\n  const tiers = info.querySelector('.hh-tiers');\n  if (tiers) buyBlock.before(blockOf(tiers) === tiers ? tiers : blockOf(tiers));\n  \/\/ options with a single value (e.g. \"Ships From: United States\") are not a choice; hide them\n  info.querySelectorAll('variant-selects .product-form__input, variant-radios .product-form__input').forEach(f =\u003e {\n    if (f.querySelectorAll('input[type=\"radio\"], option').length === 1) f.style.display = 'none';\n  });\n  const eta = info.querySelector('.hh-eta');\n  if (eta) eta.style.display = 'none';\n  buyBlock.after(root);\n  root.hidden = false;\n  const pay = root.querySelector('.hb-pay'), footerPay = document.querySelector('.list-payment');\n  if (!pay.querySelector('svg') \u0026\u0026 footerPay) pay.innerHTML = [...footerPay.querySelectorAll('svg')].map(s =\u003e s.outerHTML).join('');\n  if (!pay.querySelector('svg')) pay.remove();\n\n  const ship = SHIP[root.dataset.handle];\n  const addBiz = n =\u003e { const d = new Date(); while (n \u003e 0) { d.setDate(d.getDate() + 1); if (d.getDay() % 6) n--; } return d; };\n  const fmt = d =\u003e d.toLocaleDateString('en-US', { weekday: 'short', month: 'short', day: 'numeric' });\n  const icon = d =\u003e '\u003csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e' + d + '\u003c\/svg\u003e';\n  root.insertAdjacentHTML('beforeend',\n    '\u003cdiv class=\"hb-add\" hidden\u003e\u003c\/div\u003e' +\n    '\u003cdiv class=\"hb-ship\"\u003e' + (ship\n      ? 'Estimated delivery: \u003cb\u003e' + fmt(addBiz(ship[0])) + ' – ' + fmt(addBiz(ship[1])) + '\u003c\/b\u003e\u003cbr\u003e' + ship[2] + ', free shipping.'\n      : '\u003cb\u003eFree shipping\u003c\/b\u003e to the contiguous US.\u003cbr\u003eYour estimated delivery date is shown at checkout.') + '\u003c\/div\u003e' +\n    '\u003cdiv class=\"hb-trust\"\u003e' +\n    '\u003cdiv\u003e' + icon('\u003cpath d=\"M3 7h11v8H3zM14 10h4l3 3v2h-7\"\/\u003e\u003ccircle cx=\"7\" cy=\"17\" r=\"1.6\"\/\u003e\u003ccircle cx=\"17\" cy=\"17\" r=\"1.6\"\/\u003e') + 'Free US Shipping\u003c\/div\u003e' +\n    '\u003cdiv\u003e' + icon('\u003cpath d=\"M4 12a8 8 0 1 0 2.4-5.7\"\/\u003e\u003cpath d=\"M4 4v4h4\"\/\u003e') + '30-Day Returns\u003c\/div\u003e' +\n    '\u003cdiv\u003e' + icon('\u003ccircle cx=\"12\" cy=\"12\" r=\"8.5\"\/\u003e\u003cpath d=\"M6 6l12 12\"\/\u003e\u003cpath d=\"M10 9.5v5M14 9.5v5\"\/\u003e') + 'No Drilling\u003c\/div\u003e' +\n    '\u003c\/div\u003e' +\n    '\u003cp class=\"hb-ck\"\u003e\u003ca href=\"\/pages\/move-in-checklist\"\u003eJust moved in? Get the free move-in kitchen checklist \u0026rarr;\u003c\/a\u003e\u003c\/p\u003e');\n\n  const handles = PAIR[root.dataset.handle] || [];\n  let extras = [];\n  const add = root.querySelector('.hb-add');\n  const picks = () =\u003e [...add.querySelectorAll('input:checked')].map(c =\u003e extras[+c.dataset.x]);\n  const paint = () =\u003e {\n    const n = mainQty() + picks().length;\n    add.querySelectorAll('.hb-item').forEach(el =\u003e {\n      const e = extras[+el.dataset.x], on = el.querySelector('input').checked;\n      const pct = pctFor(on ? n : n + 1);\n      el.querySelector('.hb-item-p').innerHTML = (pct ? '\u003cspan\u003e-' + pct + '%\u003cs\u003e' + money(e.v.price) + '\u003c\/s\u003e\u003c\/span\u003e' : '') +\n        money(e.v.price - Math.floor(e.v.price * pct \/ 100));\n    });\n  };\n  Promise.all(handles.map(h =\u003e fetch('\/products\/' + h + '.js').then(r =\u003e r.ok ? r.json() : null).catch(() =\u003e null))).then(list =\u003e {\n    extras = list.filter(Boolean).map(a =\u003e {\n      const pi = a.options.findIndex(o =\u003e \/pack|quantity|bundle\/i.test(o.name));\n      const single = x =\u003e pi \u003c 0 || \/^(single|1\\b)\/i.test(x.options[pi]);\n      const v = (PREF[a.handle] \u0026\u0026 a.variants.find(x =\u003e x.available \u0026\u0026 x.title.includes(PREF[a.handle]))) || a.variants.find(x =\u003e x.available \u0026\u0026 single(x)) || a.variants.find(x =\u003e x.available);\n      return v \u0026\u0026 { a, v };\n    }).filter(Boolean);\n    if (!extras.length) return;\n    const img = s =\u003e s ? s + (s.includes('?') ? '\u0026' : '?') + 'width=120' : '';\n    const link = e =\u003e '\/products\/' + e.a.handle + '?variant=' + e.v.id;\n    add.innerHTML = '\u003cp class=\"hb-add-h\"\u003eComplete the cabinet\u003c\/p\u003e' +\n      '\u003cp class=\"hb-add-p\"\u003eTick to add it with this order. 2 items save 10%, 3 or more save 15%, applied automatically at checkout.\u003c\/p\u003e' +\n      extras.map((e, i) =\u003e '\u003clabel class=\"hb-item\" data-x=\"' + i + '\"\u003e\u003cinput type=\"checkbox\" data-x=\"' + i + '\"\u003e' +\n        (e.a.featured_image ? '\u003ca class=\"hb-item-img\" href=\"' + link(e) + '\"\u003e\u003cimg src=\"' + img(e.a.featured_image) + '\" alt=\"\" loading=\"lazy\"\u003e\u003c\/a\u003e' : '') +\n        '\u003cspan class=\"hb-item-t\"\u003e\u003ca class=\"hb-item-a\" href=\"' + link(e) + '\"\u003e' + e.a.title + '\u003c\/a\u003e' + (e.a.variants.length \u003e 1 ? '\u003csmall\u003e' + e.v.title.split(' \/ ')[0] + '\u003c\/small\u003e' : '') + '\u003c\/span\u003e' +\n        '\u003cspan class=\"hb-item-p\"\u003e\u003c\/span\u003e\u003c\/label\u003e').join('');\n    add.hidden = false;\n    add.addEventListener('change', paint);\n    document.addEventListener('change', e =\u003e { if (e.target.name === 'hh-tier' || e.target.name === 'quantity') setTimeout(paint, 50); });\n    paint();\n  });\n\n  \/\/ with add-ons ticked, add everything in one request; otherwise the theme's own add to cart runs untouched\n  document.addEventListener('submit', async e =\u003e {\n    if (e.target !== form || !picks().length) return;\n    e.preventDefault(); e.stopImmediatePropagation();\n    const btn = form.querySelector('[type=\"submit\"]'); if (btn) btn.setAttribute('aria-disabled', 'true');\n    const items = [{ id: +form.querySelector('input[name=\"id\"]').value, quantity: mainQty() }, ...picks().map(x =\u003e ({ id: x.v.id, quantity: 1 }))];\n    const r = await fetch('\/cart\/add.js', { method: 'POST', headers: { 'Content-Type': 'application\/json' }, body: JSON.stringify({ items }) });\n    if (r.ok) { location.href = '\/cart'; return; }\n    if (btn) btn.removeAttribute('aria-disabled');\n    let err = root.querySelector('.hb-err'); if (!err) { err = document.createElement('p'); err.className = 'hb-err'; add.after(err); }\n    err.textContent = ((await r.json().catch(() =\u003e ({}))).description) || 'Could not add to cart. Please try again.';\n  }, true);\n  };\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start); else start();\n})();\n\u003c\/script\u003e\n\u003c!-- \/hh-galixo v1 --\u003e\n\n\u003c!-- hh-nopantry v1: \"No-Pantry Set\" (4 items, one button). Remove this whole block to undo. --\u003e\n\u003cdiv class=\"hn\" hidden\u003e\u003c\/div\u003e\n\u003cstyle\u003e\n.hn{--g:#1f3d34;margin:6px 0 18px;border:2px solid var(--g);border-radius:14px;padding:14px;background:#f4f7f5;font-size:15px;color:#2b2b2b}\n.hn-k{font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:#c75b2a;margin:0}\n.hn-h{font-weight:700;font-size:18px;margin:2px 0 4px;color:var(--g)}\n.hn-p{font-size:14px;color:#555;margin:0 0 10px;line-height:1.45}\n.hn-list{display:grid;gap:8px;margin:0 0 10px}\n.hn-row{display:flex;gap:10px;align-items:center;background:#fff;border-radius:10px;padding:8px}\n.hn-row img{width:48px;height:48px;object-fit:cover;border-radius:6px;flex:0 0 48px}\n.hn-row span{flex:1;min-width:0;font-size:13.5px;line-height:1.35}\n.hn-row span small{display:block;color:#6b6b6b}\n.hn-row b{white-space:nowrap;font-size:14px}\n.hn-sum{display:flex;justify-content:space-between;font-size:14px;margin:2px 2px 0}\n.hn-sum.hn-you{font-weight:700;font-size:16px;color:var(--g)}\n.hn-btn{display:block;width:100%;margin-top:10px;border:0;border-radius:40px;background:var(--g);color:#fff;font:inherit;font-weight:700;font-size:16px;padding:13px;cursor:pointer}\n.hn-btn:disabled{opacity:.6}\n.hn-note{font-size:12.5px;color:#6b6b6b;margin:8px 0 0;text-align:center}\n\u003c\/style\u003e\n\u003cscript\u003e\n(() =\u003e {\n  const cs = document.currentScript;\n  \/\/ handle, preferred variant text (optional), short note shown under the name\n  const SET = [\n    { h: '2-3-4-layers-transparent-storage-rack-with-wheels-home-trolley-cart-suitable-for-snacks-cosmetic-sundries-and-kitchen-organizer', name: 'Slim Rolling Cart', note: 'your pantry, in the gap by the fridge' },\n    { h: 'stackable-telescopic-closet-shelf-retractable-expandable-wardrobe-divider-board-adjustable-layered-partition-cabinet-organizer', pref: 'White · M', name: 'Expandable Cabinet Shelf', note: 'doubles one cabinet shelf' },\n    { h: 'non-slip-lazy-susan-turntable-cabinet', pref: 'Large 11.8 in \/ Single', name: 'Lazy Susan Turntable', note: 'reach the back of a deep cabinet' },\n    { h: 'no-drill-adhesive-cabinet-door-storage-boxes-foldable-spice-organizer-set-of-2', name: 'Door Storage Boxes, Set of 2', note: 'spices on the inside of a door' }\n  ];\n  const PCT = 15; \/\/ store's automatic discount for 3+ items\n  const money = c =\u003e '$' + (c \/ 100).toFixed(2);\n  const img = s =\u003e s ? s + (s.includes('?') ? '\u0026' : '?') + 'width=100' : '';\n  const start = () =\u003e {\n    const box = (cs \u0026\u0026 cs.parentElement.querySelector('.hn')) || document.querySelector('.hn');\n    if (!box || box.dataset.ready) return;\n    box.dataset.ready = 1;\n    const anchor = document.querySelector('.hd') || document.querySelector('.hb') || (document.querySelector('.product__info-container product-form') || {}).parentElement;\n    if (anchor) anchor.after(box);\n    Promise.all(SET.map(s =\u003e fetch('\/products\/' + s.h + '.js').then(r =\u003e r.ok ? r.json() : null).catch(() =\u003e null))).then(list =\u003e {\n      const rows = SET.map((s, i) =\u003e {\n        const p = list[i]; if (!p) return null;\n        const v = (s.pref \u0026\u0026 p.variants.find(v =\u003e v.available \u0026\u0026 v.title.includes(s.pref))) || p.variants.find(v =\u003e v.available);\n        return v ? { s, p, v } : null;\n      });\n      if (rows.some(r =\u003e !r)) return; \/\/ only offer the set when every piece is in stock\n      const sum = rows.reduce((a, r) =\u003e a + r.v.price, 0);\n      const you = sum - Math.floor(sum * PCT \/ 100);\n      box.innerHTML = '\u003cp class=\"hn-k\"\u003eThe No-Pantry Set\u003c\/p\u003e\u003cp class=\"hn-h\"\u003eNo pantry? Get the four pieces that replace one.\u003c\/p\u003e' +\n        '\u003cp class=\"hn-p\"\u003eA rolling cart for the gap by the fridge, plus three no-drill upgrades for the cabinets you already have.\u003c\/p\u003e' +\n        '\u003cdiv class=\"hn-list\"\u003e' + rows.map(r =\u003e '\u003cdiv class=\"hn-row\"\u003e' + (r.p.featured_image ? '\u003cimg src=\"' + img(r.p.featured_image) + '\" alt=\"\"\u003e' : '') +\n          '\u003cspan\u003e\u003ca href=\"\/products\/' + r.s.h + '\" style=\"color:inherit\"\u003e' + r.s.name + '\u003c\/a\u003e\u003csmall\u003e' + r.s.note + (r.p.variants.length \u003e 1 ? ' · ' + r.v.title.split(' \/ ')[0] : '') + '\u003c\/small\u003e\u003c\/span\u003e\u003cb\u003e' + money(r.v.price) + '\u003c\/b\u003e\u003c\/div\u003e').join('') + '\u003c\/div\u003e' +\n        '\u003cdiv class=\"hn-sum\"\u003e\u003cspan\u003eBought separately\u003c\/span\u003e\u003cspan\u003e' + money(sum) + '\u003c\/span\u003e\u003c\/div\u003e' +\n        '\u003cdiv class=\"hn-sum hn-you\"\u003e\u003cspan\u003eWith ' + PCT + '% off 3+ items\u003c\/span\u003e\u003cspan\u003e' + money(you) + '\u003c\/span\u003e\u003c\/div\u003e' +\n        '\u003cbutton type=\"button\" class=\"hn-btn\"\u003eAdd all 4 to cart — ' + money(you) + ' at checkout\u003c\/button\u003e' +\n        '\u003cp class=\"hn-note\"\u003eThe ' + PCT + '% applies automatically at checkout. Pieces may arrive in separate packages.\u003c\/p\u003e';\n      box.hidden = false;\n      const btn = box.querySelector('.hn-btn');\n      btn.addEventListener('click', async () =\u003e {\n        btn.disabled = true; btn.textContent = 'Adding…';\n        const r = await fetch('\/cart\/add.js', { method: 'POST', headers: { 'Content-Type': 'application\/json' }, body: JSON.stringify({ items: rows.map(x =\u003e ({ id: x.v.id, quantity: 1 })) }) });\n        if (r.ok) location.href = '\/cart'; else { btn.disabled = false; btn.textContent = 'Could not add. Try again'; }\n      });\n    });\n  };\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start); else start();\n})();\n\u003c\/script\u003e\n\u003c!-- \/hh-nopantry v1 --\u003e\n\n\u003c!-- hh-eyebrow v1: product-specific line above the title. Remove this block to undo. --\u003e\n\u003cscript\u003e(()=\u003e{const e=document.querySelector('.hh-eyebrow');if(e)e.innerHTML='\u003cspan class=\"hh-new\"\u003e3 widths: 10.6–33.5 in\u003c\/span\u003e · \u003ca href=\"\/pages\/size-fit-guide\"\u003ePick your width\u003c\/a\u003e';})();\u003c\/script\u003e\n\u003c!-- \/hh-eyebrow v1 --\u003e\n","brand":"Holeless Home","offers":[{"title":"White · L (19.7-33.5 in) \/ China Mainland","offer_id":58913913635080,"sku":"14:29#White-L;200007763:201336100","price":29.95,"currency_code":"USD","in_stock":true},{"title":"Black · L (19.7-33.5 in) \/ China Mainland","offer_id":58913913667848,"sku":"14:10#Black-L;200007763:201336100","price":29.95,"currency_code":"USD","in_stock":true},{"title":"White · M (15-24.4 in) \/ China Mainland","offer_id":58913913700616,"sku":"14:173#White-M;200007763:201336100","price":29.95,"currency_code":"USD","in_stock":true},{"title":"Black · M (15-24.4 in) \/ China Mainland","offer_id":58913913733384,"sku":"14:175#Black-M;200007763:201336100","price":29.95,"currency_code":"USD","in_stock":true},{"title":"Black · S (10.6-15 in) \/ China Mainland","offer_id":58913913766152,"sku":"14:193#Black-S;200007763:201336100","price":29.95,"currency_code":"USD","in_stock":true},{"title":"White · S (10.6-15 in) \/ China Mainland","offer_id":58913913798920,"sku":"14:691#White-S;200007763:201336100","price":29.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1060\/7329\/3064\/files\/S90f04bd553834701ab6824926b678cfdf.webp?v=1790670023","url":"https:\/\/holelesshome.com\/products\/stackable-telescopic-closet-shelf-retractable-expandable-wardrobe-divider-board-adjustable-layered-partition-cabinet-organizer","provider":"Holeless Home","version":"1.0","type":"link"}