{"title":"Best Sellers","description":null,"products":[{"product_id":"premium-auto-rotating-ceramic-hair-curler-waver","title":"Premium Auto-Rotating Ceramic Hair Curler \u0026 Waver","description":"\u003cp\u003e\u003cstrong\u003eSalon-style waves in minutes.\u003c\/strong\u003e Auto-rotating ceramic barrel curls hair evenly and gently, with adjustable heat settings and an auto shut-off for safe, effortless styling at home.\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e✨ Why You'll Love It\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e🌀 Auto-rotating ceramic barrel for even, consistent curls\u003c\/li\u003e\n\u003cli\u003e🔥 Adjustable heat settings for different hair types\u003c\/li\u003e\n\u003cli\u003e🛡️ Auto shut-off safety feature for peace of mind\u003c\/li\u003e\n\u003cli\u003e💇 Salon-style waves in minutes, no styling experience needed\u003c\/li\u003e\n\u003cli\u003e✨ Ceramic coating helps protect hair from excess heat damage\u003c\/li\u003e\n\u003cli\u003e🎁 A go-to styling tool for everyday looks or special occasions\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp style=\"text-align:center; margin:20px 0;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0754\/7034\/0207\/files\/electric-hair-curler-390253.jpg?v=1789892334\" alt=\"Premium Auto-Rotating Ceramic Hair Curler in use\" style=\"max-width:100%; border-radius:12px;\"\u003e\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e📝 How to Use\u003c\/h3\u003e\u003cp\u003e\u003cstrong\u003e1.\u003c\/strong\u003e Plug in and select a heat setting suited to your hair type.\u003cbr\u003e\u003cstrong\u003e2.\u003c\/strong\u003e Wait for it to reach temperature, then clip a section of clean, dry hair into the barrel.\u003cbr\u003e\u003cstrong\u003e3.\u003c\/strong\u003e Let the auto-rotation curl the section, then release.\u003cbr\u003e\u003cstrong\u003e4.\u003c\/strong\u003e Repeat around the head, then let curls cool before styling.\u003c\/p\u003e\u003cp style=\"text-align:center; margin:20px 0;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0754\/7034\/0207\/files\/electric-hair-curler-241264.jpg?v=1789892334\" alt=\"Premium Auto-Rotating Ceramic Hair Curler barrel\" style=\"max-width:100%; border-radius:12px;\"\u003e\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e📦 What's Included\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e1× Auto-Rotating Ceramic Hair Curler\u003c\/li\u003e\n\u003cli\u003e1× Power Cable\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e🔍 Product Details\u003c\/h3\u003e\u003cp\u003eCategory: Auto-rotating hair curler  |  Barrel: Ceramic-coated  |  Heat: Adjustable settings  |  Safety: Auto shut-off\u003c\/p\u003e\u003cp\u003e🚚 Free delivery across the UAE · 💵 Cash on Delivery · ↩️ 7-day easy returns\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e❓ Frequently Asked Questions\u003c\/h3\u003e\u003cp\u003e\u003cstrong\u003eIs it suitable for all hair types?\u003c\/strong\u003e\u003cbr\u003eThe adjustable heat settings let you tailor it to fine, medium or thick hair — start on a lower setting if you're unsure.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eHow long do the curls last?\u003c\/strong\u003e\u003cbr\u003eCurl longevity depends on your hair type and any styling products used, but the ceramic barrel is designed for even, lasting curls.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eDoes it auto shut off?\u003c\/strong\u003e\u003cbr\u003eYes — it includes an auto shut-off feature for added safety.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eCan I use it on damaged or coloured hair?\u003c\/strong\u003e\u003cbr\u003eUse a lower heat setting and consider a heat protectant spray on chemically treated hair.\u003c\/p\u003e\n\u003cdiv id=\"deslore-pabrv-anchor-15539420594287\" style=\"display:none;\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  function init(){\n    var PRODUCT_ID = \"15539420594287\";\n    var HANDLE = \"premium-auto-rotating-ceramic-hair-curler-waver\";\n    var anchor = document.getElementById('deslore-pabrv-anchor-15539420594287');\n    if (!anchor) return;\n    var pageWidth = anchor.closest('.page-width');\n\n    var wrap = document.createElement('div');\n    wrap.id = 'deslore-pabrv-15539420594287';\n    wrap.style.cssText = 'width:100%;box-sizing:border-box;margin-top:40px;';\n\n    var pabWrap = document.createElement('div');\n    pabWrap.style.cssText = 'max-width:1100px;margin:0 auto;padding:28px 20px 8px;box-sizing:border-box;';\n    pabWrap.innerHTML = '\u003ch3 style=\"font-size:22px;font-weight:800;margin:0 0 18px;\"\u003ePeople Also Bought\u003c\/h3\u003e\u003cdiv class=\"dq-pab-grid\" style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;\"\u003e\u003c\/div\u003e';\n\n    var rvWrap = document.createElement('div');\n    rvWrap.style.cssText = 'max-width:1100px;margin:0 auto;padding:28px 20px 40px;box-sizing:border-box;display:none;';\n    rvWrap.innerHTML = '\u003ch3 style=\"font-size:22px;font-weight:800;margin:0 0 18px;\"\u003eRecently Viewed\u003c\/h3\u003e\u003cdiv class=\"dq-rv-grid\" style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;\"\u003e\u003c\/div\u003e';\n\n    wrap.appendChild(pabWrap);\n    wrap.appendChild(rvWrap);\n\n    if (pageWidth \u0026\u0026 pageWidth.parentElement) {\n      pageWidth.parentElement.insertBefore(wrap, pageWidth.nextSibling);\n    } else if (anchor.parentElement) {\n      anchor.parentElement.insertBefore(wrap, anchor.nextSibling);\n    }\n    anchor.remove();\n\n    function esc(s){ return (s||'').replace(\/\u0026\/g,'\u0026amp;').replace(\/\u003c\/g,'\u0026lt;').replace(\/\u003e\/g,'\u0026gt;').replace(\/\"\/g,'\u0026quot;'); }\n    function money(cents){\n      var n = (typeof cents === 'number') ? cents : parseFloat(cents);\n      if (isNaN(n)) return '';\n      return (n\/100).toFixed(2);\n    }\n\n    function renderCard(p){\n      var card = document.createElement('div');\n      card.style.cssText = 'border:1px solid #eee;border-radius:12px;padding:12px;text-align:left;background:#fff;';\n      var img = (p.featured_image || (p.images \u0026\u0026 p.images[0]) || '');\n      if (img \u0026\u0026 img.indexOf('\/\/') === 0) img = 'https:' + img;\n      var price = money(p.price);\n      var compareAt = p.compare_at_price ? money(p.compare_at_price) : null;\n      var variantId = (p.variants \u0026\u0026 p.variants[0] \u0026\u0026 p.variants[0].id) ? p.variants[0].id : null;\n      card.innerHTML =\n        '\u003ca href=\"\/products\/' + esc(p.handle) + '\" style=\"display:block;text-decoration:none;color:inherit;\"\u003e' +\n          '\u003cdiv style=\"width:100%;aspect-ratio:1\/1;background:#f5f5f5;border-radius:8px;overflow:hidden;margin-bottom:10px;\"\u003e' +\n            (img ? '\u003cimg src=\"' + esc(img) + '\" alt=\"' + esc(p.title) + '\" style=\"width:100%;height:100%;object-fit:cover;\"\u003e' : '') +\n          '\u003c\/div\u003e' +\n          '\u003cdiv style=\"font-size:14px;font-weight:700;margin-bottom:10px;\"\u003e' +\n            (compareAt ? '\u003cspan style=\"text-decoration:line-through;color:#999;font-weight:400;margin-right:6px;\"\u003eAED ' + compareAt + '\u003c\/span\u003e' : '') +\n            'AED ' + price +\n          '\u003c\/div\u003e' +\n        '\u003c\/a\u003e' +\n        '\u003cdiv style=\"display:flex;align-items:center;gap:8px;margin-bottom:8px;\"\u003e' +\n          '\u003cbutton class=\"dq-qty-minus\" style=\"width:26px;height:26px;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;\"\u003e-\u003c\/button\u003e' +\n          '\u003cspan class=\"dq-qty-val\" style=\"min-width:18px;text-align:center;font-size:13px;\"\u003e1\u003c\/span\u003e' +\n          '\u003cbutton class=\"dq-qty-plus\" style=\"width:26px;height:26px;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;\"\u003e+\u003c\/button\u003e' +\n        '\u003c\/div\u003e' +\n        '\u003cbutton class=\"dq-add-btn\" style=\"width:100%;background:#111;color:#fff;border:none;border-radius:8px;padding:10px;font-size:12px;font-weight:700;letter-spacing:0.3px;cursor:pointer;\"\u003eADD TO CART\u003c\/button\u003e';\n\n      var qtyEl = card.querySelector('.dq-qty-val');\n      card.querySelector('.dq-qty-minus').addEventListener('click', function(){\n        var v = parseInt(qtyEl.textContent, 10) || 1;\n        if (v \u003e 1) qtyEl.textContent = String(v - 1);\n      });\n      card.querySelector('.dq-qty-plus').addEventListener('click', function(){\n        var v = parseInt(qtyEl.textContent, 10) || 1;\n        qtyEl.textContent = String(v + 1);\n      });\n      var addBtn = card.querySelector('.dq-add-btn');\n      addBtn.addEventListener('click', function(){\n        if (!variantId) return;\n        addToCart(addBtn, variantId, qtyEl);\n      });\n      return card;\n    }\n\n    function addToCart(btn, variantId, qtyEl){\n      var qty = parseInt(qtyEl.textContent, 10) || 1;\n      var original = btn.textContent;\n      btn.textContent = 'ADDING...';\n      btn.disabled = true;\n      fetch('\/cart\/add.js', {\n        method: 'POST',\n        headers: {'Content-Type': 'application\/json'},\n        body: JSON.stringify({items: [{id: variantId, quantity: qty}]})\n      }).then(function(r){ return r.json(); }).then(function(){\n        btn.textContent = 'ADDED ✓';\n        fetch('\/cart.js').then(function(r){ return r.json(); }).then(function(cart){\n          document.querySelectorAll('.cart-count-bubble span, [data-cart-count], .cart-count').forEach(function(el){\n            el.textContent = cart.item_count;\n          });\n        }).catch(function(){});\n        setTimeout(function(){ btn.textContent = original; btn.disabled = false; }, 1600);\n      }).catch(function(){\n        btn.textContent = 'ERROR';\n        setTimeout(function(){ btn.textContent = original; btn.disabled = false; }, 1600);\n      });\n    }\n\n    fetch('\/recommendations\/products.json?product_id=' + PRODUCT_ID + '\u0026limit=4\u0026intent=related')\n      .then(function(r){ return r.json(); })\n      .then(function(data){\n        var grid = pabWrap.querySelector('.dq-pab-grid');\n        var products = (data \u0026\u0026 data.products) ? data.products.slice(0,4) : [];\n        if (!products.length) { pabWrap.style.display = 'none'; return; }\n        products.forEach(function(p){ grid.appendChild(renderCard(p)); });\n      })\n      .catch(function(){ pabWrap.style.display = 'none'; });\n\n    var LS_KEY = 'deslore_recently_viewed';\n    var list = [];\n    try { list = JSON.parse(localStorage.getItem(LS_KEY) || '[]'); } catch(e){ list = []; }\n    if (!Array.isArray(list)) list = [];\n    var toShow = list.filter(function(h){ return h !== HANDLE; }).slice(0, 4);\n    var updated = [HANDLE].concat(list.filter(function(h){ return h !== HANDLE; })).slice(0, 12);\n    try { localStorage.setItem(LS_KEY, JSON.stringify(updated)); } catch(e){}\n\n    if (toShow.length) {\n      var grid2 = rvWrap.querySelector('.dq-rv-grid');\n      toShow.forEach(function(h){\n        fetch('\/products\/' + h + '.js').then(function(r){ return r.json(); }).then(function(p){\n          grid2.appendChild(renderCard(p));\n          rvWrap.style.display = 'block';\n        }).catch(function(){});\n      });\n    }\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); }\n})();\n\u003c\/script\u003e","brand":"Deslore","offers":[{"title":"Default Title","offer_id":54339654123631,"sku":null,"price":102.99,"currency_code":"AED","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0754\/7034\/0207\/files\/electric-hair-curler-762008.jpg?v=1789843338"},{"product_id":"electric-black-head-suction-instrument-face-cleaner","title":"Electric Blackhead Suction Instrument – Pore Vacuum Cleaner","description":"\u003cp\u003e\u003cstrong\u003eClearer pores without the salon trip.\u003c\/strong\u003e Gentle vacuum suction lifts blackheads and clears out congestion for smoother, cleaner-looking skin — with multiple suction heads for every skin type.\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e✨ Why You'll Love It\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e🧼 Gentle vacuum suction lifts blackheads without harsh squeezing\u003c\/li\u003e\n\u003cli\u003e🎚️ Multiple suction heads \u0026amp; intensity levels for different skin zones\u003c\/li\u003e\n\u003cli\u003e✨ Leaves skin looking smoother and cleaner over time\u003c\/li\u003e\n\u003cli\u003e🔋 USB rechargeable and easy to use at home\u003c\/li\u003e\n\u003cli\u003e🎯 Great for the T-zone, nose and other congestion-prone areas\u003c\/li\u003e\n\u003cli\u003e🧼 Simple to clean between uses\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp style=\"text-align:center; margin:20px 0;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0754\/7034\/0207\/files\/suction-blackhead-remover-kit-electric-facial-pore-cleanser-acne-cleaner-6496111.jpg?v=1789892358\" alt=\"Electric Blackhead Suction Instrument heads\" style=\"max-width:100%; border-radius:12px;\"\u003e\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e📝 How to Use\u003c\/h3\u003e\u003cp\u003e\u003cstrong\u003e1.\u003c\/strong\u003e Cleanse your face and optionally use a warm towel to open pores.\u003cbr\u003e\u003cstrong\u003e2.\u003c\/strong\u003e Attach the suction head suited to the area you're treating.\u003cbr\u003e\u003cstrong\u003e3.\u003c\/strong\u003e Select a low intensity level first, gliding it slowly over the skin.\u003cbr\u003e\u003cstrong\u003e4.\u003c\/strong\u003e Rinse with cool water and moisturise afterward.\u003c\/p\u003e\u003cp style=\"text-align:center; margin:20px 0;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0754\/7034\/0207\/files\/suction-blackhead-remover-kit-electric-facial-pore-cleanser-acne-cleaner-5672104.jpg?v=1789892358\" alt=\"Electric Blackhead Suction Instrument in use\" style=\"max-width:100%; border-radius:12px;\"\u003e\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e📦 What's Included\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e1× Electric Blackhead Suction Instrument\u003c\/li\u003e\n\u003cli\u003eMultiple Suction Heads\u003c\/li\u003e\n\u003cli\u003e1× USB Charging Cable\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e🔍 Product Details\u003c\/h3\u003e\u003cp\u003eCategory: Facial pore vacuum  |  Heads: Multiple, interchangeable  |  Intensity: Adjustable levels  |  Power: USB rechargeable\u003c\/p\u003e\u003cp\u003e🚚 Free delivery across the UAE · 💵 Cash on Delivery · ↩️ 7-day easy returns\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e❓ Frequently Asked Questions\u003c\/h3\u003e\u003cp\u003e\u003cstrong\u003eWill it hurt or bruise my skin?\u003c\/strong\u003e\u003cbr\u003eStart on the lowest intensity — using too high a setting or lingering too long on one spot can cause temporary redness, so ease into it.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eHow often should I use it?\u003c\/strong\u003e\u003cbr\u003e1–2 times a week is a common starting point; listen to your skin and adjust as needed.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eWhich suction head should I use?\u003c\/strong\u003e\u003cbr\u003eUse the smaller heads for precise areas like the nose, and larger heads for broader areas like the forehead or cheeks.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eHow do I clean it?\u003c\/strong\u003e\u003cbr\u003eRinse the suction heads with water after each use and let them dry fully before storing.\u003c\/p\u003e\n\u003cdiv id=\"deslore-pabrv-anchor-15539424755823\" style=\"display:none;\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  function init(){\n    var PRODUCT_ID = \"15539424755823\";\n    var HANDLE = \"electric-black-head-suction-instrument-face-cleaner\";\n    var anchor = document.getElementById('deslore-pabrv-anchor-15539424755823');\n    if (!anchor) return;\n    var pageWidth = anchor.closest('.page-width');\n\n    var wrap = document.createElement('div');\n    wrap.id = 'deslore-pabrv-15539424755823';\n    wrap.style.cssText = 'width:100%;box-sizing:border-box;margin-top:40px;';\n\n    var pabWrap = document.createElement('div');\n    pabWrap.style.cssText = 'max-width:1100px;margin:0 auto;padding:28px 20px 8px;box-sizing:border-box;';\n    pabWrap.innerHTML = '\u003ch3 style=\"font-size:22px;font-weight:800;margin:0 0 18px;\"\u003ePeople Also Bought\u003c\/h3\u003e\u003cdiv class=\"dq-pab-grid\" style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;\"\u003e\u003c\/div\u003e';\n\n    var rvWrap = document.createElement('div');\n    rvWrap.style.cssText = 'max-width:1100px;margin:0 auto;padding:28px 20px 40px;box-sizing:border-box;display:none;';\n    rvWrap.innerHTML = '\u003ch3 style=\"font-size:22px;font-weight:800;margin:0 0 18px;\"\u003eRecently Viewed\u003c\/h3\u003e\u003cdiv class=\"dq-rv-grid\" style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;\"\u003e\u003c\/div\u003e';\n\n    wrap.appendChild(pabWrap);\n    wrap.appendChild(rvWrap);\n\n    if (pageWidth \u0026\u0026 pageWidth.parentElement) {\n      pageWidth.parentElement.insertBefore(wrap, pageWidth.nextSibling);\n    } else if (anchor.parentElement) {\n      anchor.parentElement.insertBefore(wrap, anchor.nextSibling);\n    }\n    anchor.remove();\n\n    function esc(s){ return (s||'').replace(\/\u0026\/g,'\u0026amp;').replace(\/\u003c\/g,'\u0026lt;').replace(\/\u003e\/g,'\u0026gt;').replace(\/\"\/g,'\u0026quot;'); }\n    function money(cents){\n      var n = (typeof cents === 'number') ? cents : parseFloat(cents);\n      if (isNaN(n)) return '';\n      return (n\/100).toFixed(2);\n    }\n\n    function renderCard(p){\n      var card = document.createElement('div');\n      card.style.cssText = 'border:1px solid #eee;border-radius:12px;padding:12px;text-align:left;background:#fff;';\n      var img = (p.featured_image || (p.images \u0026\u0026 p.images[0]) || '');\n      if (img \u0026\u0026 img.indexOf('\/\/') === 0) img = 'https:' + img;\n      var price = money(p.price);\n      var compareAt = p.compare_at_price ? money(p.compare_at_price) : null;\n      var variantId = (p.variants \u0026\u0026 p.variants[0] \u0026\u0026 p.variants[0].id) ? p.variants[0].id : null;\n      card.innerHTML =\n        '\u003ca href=\"\/products\/' + esc(p.handle) + '\" style=\"display:block;text-decoration:none;color:inherit;\"\u003e' +\n          '\u003cdiv style=\"width:100%;aspect-ratio:1\/1;background:#f5f5f5;border-radius:8px;overflow:hidden;margin-bottom:10px;\"\u003e' +\n            (img ? '\u003cimg src=\"' + esc(img) + '\" alt=\"' + esc(p.title) + '\" style=\"width:100%;height:100%;object-fit:cover;\"\u003e' : '') +\n          '\u003c\/div\u003e' +\n          '\u003cdiv style=\"font-size:13px;font-weight:600;line-height:1.3;margin-bottom:6px;min-height:34px;\"\u003e' + esc(p.title) + '\u003c\/div\u003e' +\n          '\u003cdiv style=\"font-size:14px;font-weight:700;margin-bottom:10px;\"\u003e' +\n            (compareAt ? '\u003cspan style=\"text-decoration:line-through;color:#999;font-weight:400;margin-right:6px;\"\u003eAED ' + compareAt + '\u003c\/span\u003e' : '') +\n            'AED ' + price +\n          '\u003c\/div\u003e' +\n        '\u003c\/a\u003e' +\n        '\u003cdiv style=\"display:flex;align-items:center;gap:8px;margin-bottom:8px;\"\u003e' +\n          '\u003cbutton class=\"dq-qty-minus\" style=\"width:26px;height:26px;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;\"\u003e-\u003c\/button\u003e' +\n          '\u003cspan class=\"dq-qty-val\" style=\"min-width:18px;text-align:center;font-size:13px;\"\u003e1\u003c\/span\u003e' +\n          '\u003cbutton class=\"dq-qty-plus\" style=\"width:26px;height:26px;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;\"\u003e+\u003c\/button\u003e' +\n        '\u003c\/div\u003e' +\n        '\u003cbutton class=\"dq-add-btn\" style=\"width:100%;background:#111;color:#fff;border:none;border-radius:8px;padding:10px;font-size:12px;font-weight:700;letter-spacing:0.3px;cursor:pointer;\"\u003eADD TO CART\u003c\/button\u003e';\n\n      var qtyEl = card.querySelector('.dq-qty-val');\n      card.querySelector('.dq-qty-minus').addEventListener('click', function(){\n        var v = parseInt(qtyEl.textContent, 10) || 1;\n        if (v \u003e 1) qtyEl.textContent = String(v - 1);\n      });\n      card.querySelector('.dq-qty-plus').addEventListener('click', function(){\n        var v = parseInt(qtyEl.textContent, 10) || 1;\n        qtyEl.textContent = String(v + 1);\n      });\n      var addBtn = card.querySelector('.dq-add-btn');\n      addBtn.addEventListener('click', function(){\n        if (!variantId) return;\n        addToCart(addBtn, variantId, qtyEl);\n      });\n      return card;\n    }\n\n    function addToCart(btn, variantId, qtyEl){\n      var qty = parseInt(qtyEl.textContent, 10) || 1;\n      var original = btn.textContent;\n      btn.textContent = 'ADDING...';\n      btn.disabled = true;\n      fetch('\/cart\/add.js', {\n        method: 'POST',\n        headers: {'Content-Type': 'application\/json'},\n        body: JSON.stringify({items: [{id: variantId, quantity: qty}]})\n      }).then(function(r){ return r.json(); }).then(function(){\n        btn.textContent = 'ADDED ✓';\n        fetch('\/cart.js').then(function(r){ return r.json(); }).then(function(cart){\n          document.querySelectorAll('.cart-count-bubble span, [data-cart-count], .cart-count').forEach(function(el){\n            el.textContent = cart.item_count;\n          });\n        }).catch(function(){});\n        setTimeout(function(){ btn.textContent = original; btn.disabled = false; }, 1600);\n      }).catch(function(){\n        btn.textContent = 'ERROR';\n        setTimeout(function(){ btn.textContent = original; btn.disabled = false; }, 1600);\n      });\n    }\n\n    fetch('\/recommendations\/products.json?product_id=' + PRODUCT_ID + '\u0026limit=4\u0026intent=related')\n      .then(function(r){ return r.json(); })\n      .then(function(data){\n        var grid = pabWrap.querySelector('.dq-pab-grid');\n        var products = (data \u0026\u0026 data.products) ? data.products.slice(0,4) : [];\n        if (!products.length) { pabWrap.style.display = 'none'; return; }\n        products.forEach(function(p){ grid.appendChild(renderCard(p)); });\n      })\n      .catch(function(){ pabWrap.style.display = 'none'; });\n\n    var LS_KEY = 'deslore_recently_viewed';\n    var list = [];\n    try { list = JSON.parse(localStorage.getItem(LS_KEY) || '[]'); } catch(e){ list = []; }\n    if (!Array.isArray(list)) list = [];\n    var toShow = list.filter(function(h){ return h !== HANDLE; }).slice(0, 4);\n    var updated = [HANDLE].concat(list.filter(function(h){ return h !== HANDLE; })).slice(0, 12);\n    try { localStorage.setItem(LS_KEY, JSON.stringify(updated)); } catch(e){}\n\n    if (toShow.length) {\n      var grid2 = rvWrap.querySelector('.dq-rv-grid');\n      toShow.forEach(function(h){\n        fetch('\/products\/' + h + '.js').then(function(r){ return r.json(); }).then(function(p){\n          grid2.appendChild(renderCard(p));\n          rvWrap.style.display = 'block';\n        }).catch(function(){});\n      });\n    }\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); }\n})();\n\u003c\/script\u003e","brand":"Deslore","offers":[{"title":"Default Title","offer_id":54339685515375,"sku":null,"price":69.99,"currency_code":"AED","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0754\/7034\/0207\/files\/suction-blackhead-remover-kit-electric-facial-pore-cleanser-acne-cleaner-4720543.jpg?v=1789843499"},{"product_id":"galaxy-ocean-light-projector","title":"Galaxy Ocean Light Projector – Nebula \u0026 Wave Projector","description":"\u003cp\u003e\u003cstrong\u003eTurn any room into your own galaxy.\u003c\/strong\u003e This galaxy and ocean wave projector fills your ceiling and walls with drifting nebula colors and calming ocean waves — instantly transforming a bedroom, living room or party space into an immersive, relaxing scene.\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e✨ Why You'll Love It\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e🌌 Rich nebula galaxy light effects that drift and shift smoothly\u003c\/li\u003e\n\u003cli\u003e🌊 Calming ocean wave patterns for a soothing, dreamy glow\u003c\/li\u003e\n\u003cli\u003e😌 Great for winding down and easing into sleep at night\u003c\/li\u003e\n\u003cli\u003e🎉 Sets the mood instantly for parties, movie nights and gatherings\u003c\/li\u003e\n\u003cli\u003e🎮 Simple remote or button controls to switch modes and colors\u003c\/li\u003e\n\u003cli\u003e🏠 Works in bedrooms, living rooms, kids' rooms and home theaters\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp style=\"text-align:center; margin:20px 0;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0754\/7034\/0207\/files\/galaxy-ocean-light-projector-989231.jpg?v=1789844478\" alt=\"Galaxy Ocean Light Projector detail\" style=\"max-width:100%; border-radius:12px;\"\u003e\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e📝 How to Use\u003c\/h3\u003e\u003cp\u003e\u003cstrong\u003e1.\u003c\/strong\u003e Place the projector on a flat surface facing an open wall or ceiling.\u003cbr\u003e\u003cstrong\u003e2.\u003c\/strong\u003e Power it on and pick your favorite light mode — galaxy, wave or a combination.\u003cbr\u003e\u003cstrong\u003e3.\u003c\/strong\u003e Adjust brightness and rotation speed to set the mood you want.\u003cbr\u003e\u003cstrong\u003e4.\u003c\/strong\u003e Dim the room lights for the fullest, most immersive effect.\u003c\/p\u003e\u003cp style=\"text-align:center; margin:20px 0;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0754\/7034\/0207\/files\/galaxy-ocean-light-projector-445167.jpg?v=1789892489\" alt=\"Galaxy Ocean Light Projector in use\" style=\"max-width:100%; border-radius:12px;\"\u003e\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e📦 What's Included\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e1× Galaxy Ocean Light Projector\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e🔍 Product Details\u003c\/h3\u003e\u003cp\u003eCategory: Galaxy \u0026amp; ocean wave projector  |  Effects: Nebula galaxy + ocean wave  |  Best for: Bedrooms, living rooms \u0026amp; parties\u003c\/p\u003e\u003cp\u003e🚚 Free delivery across the UAE · 💵 Cash on Delivery · ↩️ 7-day easy returns\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e❓ Frequently Asked Questions\u003c\/h3\u003e\u003cp\u003e\u003cstrong\u003eWill it light up a whole room?\u003c\/strong\u003e\u003cbr\u003eYes — in a dimmed room, the projection covers walls and ceilings for a full immersive effect, not just a small spot.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eIs it safe to leave on overnight?\u003c\/strong\u003e\u003cbr\u003eYes, many people use it as a calming night light, though we recommend using the timer or turning it off before falling fully asleep for best rest.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eCan I control the colors and patterns?\u003c\/strong\u003e\u003cbr\u003eYes — simple onboard or remote controls let you switch between galaxy, wave and combined light modes.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eIs it good for kids' rooms?\u003c\/strong\u003e\u003cbr\u003eYes — the soft, shifting light is popular for kids' bedrooms as a calming, non-startling night light.\u003c\/p\u003e\u003cdiv id=\"deslore-pabrv-anchor-15539466141807\" style=\"display:none;\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  function init(){\n    var PRODUCT_ID = \"15539466141807\";\n    var HANDLE = \"galaxy-ocean-light-projector\";\n    var anchor = document.getElementById('deslore-pabrv-anchor-15539466141807');\n    if (!anchor) return;\n    var pageWidth = anchor.closest('.page-width');\n\n    var wrap = document.createElement('div');\n    wrap.id = 'deslore-pabrv-15539466141807';\n    wrap.style.cssText = 'width:100%;box-sizing:border-box;margin-top:40px;';\n\n    var pabWrap = document.createElement('div');\n    pabWrap.style.cssText = 'max-width:1100px;margin:0 auto;padding:28px 20px 8px;box-sizing:border-box;';\n    pabWrap.innerHTML = '\u003ch3 style=\"font-size:22px;font-weight:800;margin:0 0 18px;\"\u003ePeople Also Bought\u003c\/h3\u003e\u003cdiv class=\"dq-pab-grid\" style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;\"\u003e\u003c\/div\u003e';\n\n    var rvWrap = document.createElement('div');\n    rvWrap.style.cssText = 'max-width:1100px;margin:0 auto;padding:28px 20px 40px;box-sizing:border-box;display:none;';\n    rvWrap.innerHTML = '\u003ch3 style=\"font-size:22px;font-weight:800;margin:0 0 18px;\"\u003eRecently Viewed\u003c\/h3\u003e\u003cdiv class=\"dq-rv-grid\" style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;\"\u003e\u003c\/div\u003e';\n\n    wrap.appendChild(pabWrap);\n    wrap.appendChild(rvWrap);\n\n    if (pageWidth \u0026\u0026 pageWidth.parentElement) {\n      pageWidth.parentElement.insertBefore(wrap, pageWidth.nextSibling);\n    } else if (anchor.parentElement) {\n      anchor.parentElement.insertBefore(wrap, anchor.nextSibling);\n    }\n    anchor.remove();\n\n    function esc(s){ return (s||'').replace(\/\u0026\/g,'\u0026amp;').replace(\/\u003c\/g,'\u0026lt;').replace(\/\u003e\/g,'\u0026gt;').replace(\/\"\/g,'\u0026quot;'); }\n    function money(cents){\n      var n = (typeof cents === 'number') ? cents : parseFloat(cents);\n      if (isNaN(n)) return '';\n      return (n\/100).toFixed(2);\n    }\n\n    function renderCard(p){\n      var card = document.createElement('div');\n      card.style.cssText = 'border:1px solid #eee;border-radius:12px;padding:12px;text-align:left;background:#fff;';\n      var img = (p.featured_image || (p.images \u0026\u0026 p.images[0]) || '');\n      if (img \u0026\u0026 img.indexOf('\/\/') === 0) img = 'https:' + img;\n      var price = money(p.price);\n      var compareAt = p.compare_at_price ? money(p.compare_at_price) : null;\n      var variantId = (p.variants \u0026\u0026 p.variants[0] \u0026\u0026 p.variants[0].id) ? p.variants[0].id : null;\n      card.innerHTML =\n        '\u003ca href=\"\/products\/' + esc(p.handle) + '\" style=\"display:block;text-decoration:none;color:inherit;\"\u003e' +\n          '\u003cdiv style=\"width:100%;aspect-ratio:1\/1;background:#f5f5f5;border-radius:8px;overflow:hidden;margin-bottom:10px;\"\u003e' +\n            (img ? '\u003cimg src=\"' + esc(img) + '\" alt=\"' + esc(p.title) + '\" style=\"width:100%;height:100%;object-fit:cover;\"\u003e' : '') +\n          '\u003c\/div\u003e' +\n          '\u003cdiv style=\"font-size:13px;font-weight:600;line-height:1.3;margin-bottom:6px;min-height:34px;\"\u003e' + esc(p.title) + '\u003c\/div\u003e' +\n          '\u003cdiv style=\"font-size:14px;font-weight:700;margin-bottom:10px;\"\u003e' +\n            (compareAt ? '\u003cspan style=\"text-decoration:line-through;color:#999;font-weight:400;margin-right:6px;\"\u003eAED ' + compareAt + '\u003c\/span\u003e' : '') +\n            'AED ' + price +\n          '\u003c\/div\u003e' +\n        '\u003c\/a\u003e' +\n        '\u003cdiv style=\"display:flex;align-items:center;gap:8px;margin-bottom:8px;\"\u003e' +\n          '\u003cbutton class=\"dq-qty-minus\" style=\"width:26px;height:26px;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;\"\u003e-\u003c\/button\u003e' +\n          '\u003cspan class=\"dq-qty-val\" style=\"min-width:18px;text-align:center;font-size:13px;\"\u003e1\u003c\/span\u003e' +\n          '\u003cbutton class=\"dq-qty-plus\" style=\"width:26px;height:26px;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;\"\u003e+\u003c\/button\u003e' +\n        '\u003c\/div\u003e' +\n        '\u003cbutton class=\"dq-add-btn\" style=\"width:100%;background:#111;color:#fff;border:none;border-radius:8px;padding:10px;font-size:12px;font-weight:700;letter-spacing:0.3px;cursor:pointer;\"\u003eADD TO CART\u003c\/button\u003e';\n\n      var qtyEl = card.querySelector('.dq-qty-val');\n      card.querySelector('.dq-qty-minus').addEventListener('click', function(){\n        var v = parseInt(qtyEl.textContent, 10) || 1;\n        if (v \u003e 1) qtyEl.textContent = String(v - 1);\n      });\n      card.querySelector('.dq-qty-plus').addEventListener('click', function(){\n        var v = parseInt(qtyEl.textContent, 10) || 1;\n        qtyEl.textContent = String(v + 1);\n      });\n      var addBtn = card.querySelector('.dq-add-btn');\n      addBtn.addEventListener('click', function(){\n        if (!variantId) return;\n        addToCart(addBtn, variantId, qtyEl);\n      });\n      return card;\n    }\n\n    function addToCart(btn, variantId, qtyEl){\n      var qty = parseInt(qtyEl.textContent, 10) || 1;\n      var original = btn.textContent;\n      btn.textContent = 'ADDING...';\n      btn.disabled = true;\n      fetch('\/cart\/add.js', {\n        method: 'POST',\n        headers: {'Content-Type': 'application\/json'},\n        body: JSON.stringify({items: [{id: variantId, quantity: qty}]})\n      }).then(function(r){ return r.json(); }).then(function(){\n        btn.textContent = 'ADDED ✓';\n        fetch('\/cart.js').then(function(r){ return r.json(); }).then(function(cart){\n          document.querySelectorAll('.cart-count-bubble span, [data-cart-count], .cart-count').forEach(function(el){\n            el.textContent = cart.item_count;\n          });\n        }).catch(function(){});\n        setTimeout(function(){ btn.textContent = original; btn.disabled = false; }, 1600);\n      }).catch(function(){\n        btn.textContent = 'ERROR';\n        setTimeout(function(){ btn.textContent = original; btn.disabled = false; }, 1600);\n      });\n    }\n\n    fetch('\/recommendations\/products.json?product_id=' + PRODUCT_ID + '\u0026limit=4\u0026intent=related')\n      .then(function(r){ return r.json(); })\n      .then(function(data){\n        var grid = pabWrap.querySelector('.dq-pab-grid');\n        var products = (data \u0026\u0026 data.products) ? data.products.slice(0,4) : [];\n        if (!products.length) { pabWrap.style.display = 'none'; return; }\n        products.forEach(function(p){ grid.appendChild(renderCard(p)); });\n      })\n      .catch(function(){ pabWrap.style.display = 'none'; });\n\n    var LS_KEY = 'deslore_recently_viewed';\n    var list = [];\n    try { list = JSON.parse(localStorage.getItem(LS_KEY) || '[]'); } catch(e){ list = []; }\n    if (!Array.isArray(list)) list = [];\n    var toShow = list.filter(function(h){ return h !== HANDLE; }).slice(0, 4);\n    var updated = [HANDLE].concat(list.filter(function(h){ return h !== HANDLE; })).slice(0, 12);\n    try { localStorage.setItem(LS_KEY, JSON.stringify(updated)); } catch(e){}\n\n    if (toShow.length) {\n      var grid2 = rvWrap.querySelector('.dq-rv-grid');\n      toShow.forEach(function(h){\n        fetch('\/products\/' + h + '.js').then(function(r){ return r.json(); }).then(function(p){\n          grid2.appendChild(renderCard(p));\n          rvWrap.style.display = 'block';\n        }).catch(function(){});\n      });\n    }\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); }\n})();\n\u003c\/script\u003e","brand":"Deslore","offers":[{"title":"Default Title","offer_id":54339925180527,"sku":null,"price":74.99,"currency_code":"AED","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0754\/7034\/0207\/files\/galaxy-ocean-light-projector-989231.jpg?v=1789844478"},{"product_id":"cleaning-magic-electric-brush","title":"Cleaning Magic Electric Brush – 5-in-1 Spin Scrubber","description":"\u003cp\u003e\u003cstrong\u003eSay goodbye to scrubbing on your hands and knees.\u003c\/strong\u003e The Cleaning Magic Electric Brush is a cordless 5-in-1 spin scrubber that powers through grime, soap scum, and stubborn stains on tiles, grout, sinks, and dishes with almost zero effort. Swap between five interchangeable heads and let the motor do the hard work.\u003c\/p\u003e\n\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e✨ Why You'll Love It\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e🌀 Powerful 5-in-1 spin scrubbing motor tackles even baked-on grime\u003c\/li\u003e\n\u003cli\u003e🔧 Comes with interchangeable brush heads for every surface in your home\u003c\/li\u003e\n\u003cli\u003e🚿 Cuts through soap scum and hard water stains on tiles, grout, and bathroom fixtures\u003c\/li\u003e\n\u003cli\u003e🍽️ Doubles as a dish and kitchen scrubber, cutting through grease in seconds\u003c\/li\u003e\n\u003cli\u003e🔋 Cordless, rechargeable design gives you the freedom to clean anywhere\u003c\/li\u003e\n\u003cli\u003e💪 Saves your wrists and knees from hours of manual scrubbing\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp style=\"text-align:center; margin:20px 0;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0754\/7034\/0207\/files\/cleaning-magic-electric-brush-5-in-1-721943.jpg?v=1789844737\" alt=\"Cleaning Magic Electric Brush – 5-in-1 Spin Scrubber detail\" style=\"max-width:100%; border-radius:12px;\"\u003e\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e📝 How to Use\u003c\/h3\u003e\u003cp\u003e\u003cstrong\u003e1.\u003c\/strong\u003e Charge the handle fully before first use.\u003cbr\u003e\u003cstrong\u003e2.\u003c\/strong\u003e Attach the brush head suited to the surface you're cleaning.\u003cbr\u003e\u003cstrong\u003e3.\u003c\/strong\u003e Apply your usual cleaning spray or soap to the area.\u003cbr\u003e\u003cstrong\u003e4.\u003c\/strong\u003e Power on and let the spinning brush lift dirt and grime away.\u003c\/p\u003e\u003cp style=\"text-align:center; margin:20px 0;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0754\/7034\/0207\/files\/cleaning-magic-electric-brush-5-in-1-937543.jpg?v=1789892543\" alt=\"Cleaning Magic Electric Brush – 5-in-1 Spin Scrubber in use\" style=\"max-width:100%; border-radius:12px;\"\u003e\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e📦 What's Included\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e1 x Cordless Electric Spin Scrubber Handle\u003c\/li\u003e\n\u003cli\u003e5 x Interchangeable Cleaning Brush Heads\u003c\/li\u003e\n\u003cli\u003e1 x USB Charging Cable\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e🔍 Product Details\u003c\/h3\u003e\u003cp\u003e5-in-1 interchangeable heads  |  Cordless \u0026amp; rechargeable  |  Waterproof design\u003c\/p\u003e\u003cp\u003e🚚 Free delivery across the UAE · 💵 Cash on Delivery · ↩️ 7-day easy returns\u003c\/p\u003e\u003ch3 style=\"font-size:20px; font-weight:700; margin:24px 0 10px;\"\u003e❓ Frequently Asked Questions\u003c\/h3\u003e\u003cp\u003e\u003cstrong\u003eWhat surfaces can I use it on?\u003c\/strong\u003e\u003cbr\u003eWith its five different brush heads, it's designed for tiles, grout, bathtubs, sinks, dishes, and kitchen surfaces.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eHow long does the battery last on a full charge?\u003c\/strong\u003e\u003cbr\u003eA full charge gives you plenty of runtime for a thorough cleaning session around the home before it needs recharging.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eIs it safe to use with water?\u003c\/strong\u003e\u003cbr\u003eYes, the scrubber is built to handle wet, soapy surfaces, making it ideal for bathrooms and kitchens.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eHow do I switch between brush heads?\u003c\/strong\u003e\u003cbr\u003eEach head simply clicks onto the motorized handle and detaches with a gentle pull, so you can swap heads in seconds.\u003c\/p\u003e\u003cdiv id=\"deslore-pabrv-anchor-15539474268271\" style=\"display:none;\"\u003e\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  function init(){\n    var PRODUCT_ID = \"15539474268271\";\n    var HANDLE = \"cleaning-magic-electric-brush\";\n    var anchor = document.getElementById('deslore-pabrv-anchor-15539474268271');\n    if (!anchor) return;\n    var pageWidth = anchor.closest('.page-width');\n\n    var wrap = document.createElement('div');\n    wrap.id = 'deslore-pabrv-15539474268271';\n    wrap.style.cssText = 'width:100%;box-sizing:border-box;margin-top:40px;';\n\n    var pabWrap = document.createElement('div');\n    pabWrap.style.cssText = 'max-width:1100px;margin:0 auto;padding:28px 20px 8px;box-sizing:border-box;';\n    pabWrap.innerHTML = '\u003ch3 style=\"font-size:22px;font-weight:800;margin:0 0 18px;\"\u003ePeople Also Bought\u003c\/h3\u003e\u003cdiv class=\"dq-pab-grid\" style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;\"\u003e\u003c\/div\u003e';\n\n    var rvWrap = document.createElement('div');\n    rvWrap.style.cssText = 'max-width:1100px;margin:0 auto;padding:28px 20px 40px;box-sizing:border-box;display:none;';\n    rvWrap.innerHTML = '\u003ch3 style=\"font-size:22px;font-weight:800;margin:0 0 18px;\"\u003eRecently Viewed\u003c\/h3\u003e\u003cdiv class=\"dq-rv-grid\" style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;\"\u003e\u003c\/div\u003e';\n\n    wrap.appendChild(pabWrap);\n    wrap.appendChild(rvWrap);\n\n    if (pageWidth \u0026\u0026 pageWidth.parentElement) {\n      pageWidth.parentElement.insertBefore(wrap, pageWidth.nextSibling);\n    } else if (anchor.parentElement) {\n      anchor.parentElement.insertBefore(wrap, anchor.nextSibling);\n    }\n    anchor.remove();\n\n    function esc(s){ return (s||'').replace(\/\u0026\/g,'\u0026amp;').replace(\/\u003c\/g,'\u0026lt;').replace(\/\u003e\/g,'\u0026gt;').replace(\/\"\/g,'\u0026quot;'); }\n    function money(cents){\n      var n = (typeof cents === 'number') ? cents : parseFloat(cents);\n      if (isNaN(n)) return '';\n      return (n\/100).toFixed(2);\n    }\n\n    function renderCard(p){\n      var card = document.createElement('div');\n      card.style.cssText = 'border:1px solid #eee;border-radius:12px;padding:12px;text-align:left;background:#fff;';\n      var img = (p.featured_image || (p.images \u0026\u0026 p.images[0]) || '');\n      if (img \u0026\u0026 img.indexOf('\/\/') === 0) img = 'https:' + img;\n      var price = money(p.price);\n      var compareAt = p.compare_at_price ? money(p.compare_at_price) : null;\n      var variantId = (p.variants \u0026\u0026 p.variants[0] \u0026\u0026 p.variants[0].id) ? p.variants[0].id : null;\n      card.innerHTML =\n        '\u003ca href=\"\/products\/' + esc(p.handle) + '\" style=\"display:block;text-decoration:none;color:inherit;\"\u003e' +\n          '\u003cdiv style=\"width:100%;aspect-ratio:1\/1;background:#f5f5f5;border-radius:8px;overflow:hidden;margin-bottom:10px;\"\u003e' +\n            (img ? '\u003cimg src=\"' + esc(img) + '\" alt=\"' + esc(p.title) + '\" style=\"width:100%;height:100%;object-fit:cover;\"\u003e' : '') +\n          '\u003c\/div\u003e' +\n          '\u003cdiv style=\"font-size:13px;font-weight:600;line-height:1.3;margin-bottom:6px;min-height:34px;\"\u003e' + esc(p.title) + '\u003c\/div\u003e' +\n          '\u003cdiv style=\"font-size:14px;font-weight:700;margin-bottom:10px;\"\u003e' +\n            (compareAt ? '\u003cspan style=\"text-decoration:line-through;color:#999;font-weight:400;margin-right:6px;\"\u003eAED ' + compareAt + '\u003c\/span\u003e' : '') +\n            'AED ' + price +\n          '\u003c\/div\u003e' +\n        '\u003c\/a\u003e' +\n        '\u003cdiv style=\"display:flex;align-items:center;gap:8px;margin-bottom:8px;\"\u003e' +\n          '\u003cbutton class=\"dq-qty-minus\" style=\"width:26px;height:26px;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;\"\u003e-\u003c\/button\u003e' +\n          '\u003cspan class=\"dq-qty-val\" style=\"min-width:18px;text-align:center;font-size:13px;\"\u003e1\u003c\/span\u003e' +\n          '\u003cbutton class=\"dq-qty-plus\" style=\"width:26px;height:26px;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;\"\u003e+\u003c\/button\u003e' +\n        '\u003c\/div\u003e' +\n        '\u003cbutton class=\"dq-add-btn\" style=\"width:100%;background:#111;color:#fff;border:none;border-radius:8px;padding:10px;font-size:12px;font-weight:700;letter-spacing:0.3px;cursor:pointer;\"\u003eADD TO CART\u003c\/button\u003e';\n\n      var qtyEl = card.querySelector('.dq-qty-val');\n      card.querySelector('.dq-qty-minus').addEventListener('click', function(){\n        var v = parseInt(qtyEl.textContent, 10) || 1;\n        if (v \u003e 1) qtyEl.textContent = String(v - 1);\n      });\n      card.querySelector('.dq-qty-plus').addEventListener('click', function(){\n        var v = parseInt(qtyEl.textContent, 10) || 1;\n        qtyEl.textContent = String(v + 1);\n      });\n      var addBtn = card.querySelector('.dq-add-btn');\n      addBtn.addEventListener('click', function(){\n        if (!variantId) return;\n        addToCart(addBtn, variantId, qtyEl);\n      });\n      return card;\n    }\n\n    function addToCart(btn, variantId, qtyEl){\n      var qty = parseInt(qtyEl.textContent, 10) || 1;\n      var original = btn.textContent;\n      btn.textContent = 'ADDING...';\n      btn.disabled = true;\n      fetch('\/cart\/add.js', {\n        method: 'POST',\n        headers: {'Content-Type': 'application\/json'},\n        body: JSON.stringify({items: [{id: variantId, quantity: qty}]})\n      }).then(function(r){ return r.json(); }).then(function(){\n        btn.textContent = 'ADDED ✓';\n        fetch('\/cart.js').then(function(r){ return r.json(); }).then(function(cart){\n          document.querySelectorAll('.cart-count-bubble span, [data-cart-count], .cart-count').forEach(function(el){\n            el.textContent = cart.item_count;\n          });\n        }).catch(function(){});\n        setTimeout(function(){ btn.textContent = original; btn.disabled = false; }, 1600);\n      }).catch(function(){\n        btn.textContent = 'ERROR';\n        setTimeout(function(){ btn.textContent = original; btn.disabled = false; }, 1600);\n      });\n    }\n\n    fetch('\/recommendations\/products.json?product_id=' + PRODUCT_ID + '\u0026limit=4\u0026intent=related')\n      .then(function(r){ return r.json(); })\n      .then(function(data){\n        var grid = pabWrap.querySelector('.dq-pab-grid');\n        var products = (data \u0026\u0026 data.products) ? data.products.slice(0,4) : [];\n        if (!products.length) { pabWrap.style.display = 'none'; return; }\n        products.forEach(function(p){ grid.appendChild(renderCard(p)); });\n      })\n      .catch(function(){ pabWrap.style.display = 'none'; });\n\n    var LS_KEY = 'deslore_recently_viewed';\n    var list = [];\n    try { list = JSON.parse(localStorage.getItem(LS_KEY) || '[]'); } catch(e){ list = []; }\n    if (!Array.isArray(list)) list = [];\n    var toShow = list.filter(function(h){ return h !== HANDLE; }).slice(0, 4);\n    var updated = [HANDLE].concat(list.filter(function(h){ return h !== HANDLE; })).slice(0, 12);\n    try { localStorage.setItem(LS_KEY, JSON.stringify(updated)); } catch(e){}\n\n    if (toShow.length) {\n      var grid2 = rvWrap.querySelector('.dq-rv-grid');\n      toShow.forEach(function(h){\n        fetch('\/products\/' + h + '.js').then(function(r){ return r.json(); }).then(function(p){\n          grid2.appendChild(renderCard(p));\n          rvWrap.style.display = 'block';\n        }).catch(function(){});\n      });\n    }\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); }\n})();\n\u003c\/script\u003e","brand":"Deslore","offers":[{"title":"Default Title","offer_id":54339967582319,"sku":null,"price":47.99,"currency_code":"AED","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0754\/7034\/0207\/files\/cleaning-magic-electric-brush-5-in-1-721943.jpg?v=1789844737"}],"url":"https:\/\/www.deslore.com\/collections\/best-sellers.oembed","provider":"Deslore ","version":"1.0","type":"link"}