{"product_id":"lise-fem-lerakoasztal-ajanlat","title":"Lise fém lerakóasztal","description":"\u003c!--bm-outlet-badges:v1--\u003e\u003cstyle id=\"bm-showroom-pdp-css\"\u003e@keyframes bm-stock-pulse {\n  0%, 100% { transform: scale(1); filter: brightness(1); }\n  50% { transform: scale(1.07); filter: brightness(1.15); }\n}\n.product-label.bm-stock-pulse,\n.product-label--custom {\n  animation: bm-stock-pulse 1.35s ease-in-out infinite;\n  transform-origin: center right;\n}\n.product-label.bm-label-sale,\n.product-label--sale {\n  background-color: #b42318;\n  color: #fff;\n}\n.card--product .product-label-wrapper,\n.product-label-container .product-label-wrapper {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-end;\n  gap: 4px;\n}\n.card--product .product-label--new,\n.product-info .product-label--new { display: none; }\n.card--product .price__was {\n  display: inline !important;\n  text-decoration: line-through;\n  opacity: .72;\n  margin-inline-start: .35em;\n  white-space: nowrap;\n}\u003c\/style\u003e\u003cscript id=\"bm-showroom-pdp-js\"\u003e(function(){\n  var el = document.getElementById(\"bm-showroom-data\");\n  var DATA = {};\n  if (el) {\n    try { DATA = JSON.parse(el.textContent || \"{}\"); } catch (e) {}\n  }\n  function money(n){\n    return new Intl.NumberFormat(\"hu-HU\").format(Math.round(Number(n))) + \" Ft\";\n  }\n  function stockText(q){\n    q = Math.max(0, parseInt(q, 10) || 0);\n    if (q \u003c= 0) return \"Elfogyott\";\n    return q === 1 ? \"Még 1 db\" : (\"Még \" + q + \" db\");\n  }\n  function handleOf(href){\n    if (!href) return \"\";\n    return href.split(\"?\")[0].replace(\/\\\/+$\/, \"\").split(\"\/\").pop();\n  }\n  function infoFromProduct(p){\n    var v = (p \u0026\u0026 p.variants \u0026\u0026 p.variants[0]) || {};\n    var price = Number(v.price || (p \u0026\u0026 p.price) || 0) \/ 100;\n    var compare = Number(v.compare_at_price || (p \u0026\u0026 p.compare_at_price) || 0) \/ 100;\n    var qty = 1;\n    var tags = (p \u0026\u0026 p.tags) || [];\n    if (typeof tags === \"string\") tags = tags.split(\",\");\n    for (var i = 0; i \u003c tags.length; i++) {\n      var m = String(tags[i]).trim().match(\/^bm-qty-(\\d+)$\/);\n      if (m) qty = parseInt(m[1], 10);\n    }\n    return { p: price, c: compare \u003e price + 0.5 ? compare : 0, q: qty };\n  }\n  function isStockLabel(el){\n    var t = (el.textContent || \"\").trim();\n    return t.indexOf(\"Még \") === 0 || t === \"Elfogyott\";\n  }\n  function dedupeStock(root){\n    var nodes = root.querySelectorAll(\".product-label\");\n    var kept = null;\n    for (var i = 0; i \u003c nodes.length; i++) {\n      if (!isStockLabel(nodes[i])) continue;\n      if (!kept) {\n        kept = nodes[i];\n        kept.classList.add(\"bm-stock-pulse\");\n      } else {\n        nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n      }\n    }\n    return kept;\n  }\n  function addLabel(wrap, className, text){\n    var existing = wrap.querySelectorAll(\".product-label\");\n    for (var i = 0; i \u003c existing.length; i++) {\n      if (existing[i].textContent.trim() === text) return existing[i];\n    }\n    var s = document.createElement(\"span\");\n    s.className = className;\n    s.textContent = text;\n    wrap.appendChild(s);\n    return s;\n  }\n  function wrapOf(card){\n    var w = card.querySelector(\".product-label-wrapper\");\n    if (w) return w;\n    var media = card.querySelector(\".card__media\") || card;\n    var box = document.createElement(\"div\");\n    box.className = \"product-label-container absolute top-0 end\";\n    box.innerHTML = '\u003cdiv class=\"product-label-wrapper flex justify-end\"\u003e\u003c\/div\u003e';\n    media.appendChild(box);\n    return box.querySelector(\".product-label-wrapper\");\n  }\n  function applyInfo(card, info){\n    var wrap = wrapOf(card);\n    var news = card.querySelectorAll(\".product-label--new\");\n    for (var n = 0; n \u003c news.length; n++) news[n].remove();\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\n      var pct = Math.round((1 - Number(info.p) \/ Number(info.c)) * 100);\n      addLabel(wrap, \"product-label product-label--sale bm-label-sale\", pct \u003e 0 ? (\"Megtakarítás: \" + pct + \"%\") : \"Akció\");\n      var was = card.querySelector(\".price__was\");\n      if (was \u0026\u0026 !was.textContent.trim()) was.textContent = money(info.c);\n    }\n    var qtyLabel = stockText(info.q);\n    var stock = dedupeStock(card);\n    if (stock) {\n      stock.textContent = qtyLabel;\n      stock.classList.add(\"product-label\", \"product-label--custom\", \"bm-stock-pulse\");\n    } else {\n      addLabel(wrap, \"product-label product-label--custom bm-stock-pulse\", qtyLabel);\n    }\n  }\n  function loadInfo(handle, done){\n    if (DATA[handle]) { done(DATA[handle]); return; }\n    fetch(\"\/products\/\" + handle + \".js\")\n      .then(function(r){ if (!r.ok) throw new Error(\"missing\"); return r.json(); })\n      .then(function(p){\n        var info = infoFromProduct(p);\n        DATA[handle] = info;\n        done(info);\n      })\n      .catch(function(){ done({ p: 0, c: 0, q: 1 }); });\n  }\n  function enhanceCard(card){\n    if (card.getAttribute(\"data-bm-outlet\") === \"1\" || card.getAttribute(\"data-bm-pending\") === \"1\") return;\n    var a = card.querySelector(\"a[href*='\/products\/']\");\n    var handle = handleOf(a \u0026\u0026 a.getAttribute(\"href\"));\n    if (!handle || handle.indexOf(\"-ajanlat\") === -1) return;\n    var info = DATA[handle];\n    if (info) {\n      card.setAttribute(\"data-bm-outlet\", \"1\");\n      applyInfo(card, info);\n      return;\n    }\n    card.setAttribute(\"data-bm-pending\", \"1\");\n    loadInfo(handle, function(next){\n      card.removeAttribute(\"data-bm-pending\");\n      card.setAttribute(\"data-bm-outlet\", \"1\");\n      applyInfo(card, next);\n    });\n  }\n  function enhancePdp(){\n    var handle = handleOf(location.pathname);\n    if (!handle || handle.indexOf(\"-ajanlat\") === -1) return;\n    var wrap = document.querySelector(\".product-info .product-label-wrapper\") || document.querySelector(\".product-label-wrapper\");\n    if (!wrap || wrap.getAttribute(\"data-bm-outlet\") === \"1\" || wrap.getAttribute(\"data-bm-pending\") === \"1\") return;\n    wrap.setAttribute(\"data-bm-pending\", \"1\");\n    var news = document.querySelectorAll(\".product-info .product-label--new, .product-gallery .product-label--new, .product-label-container .product-label--new\");\n    for (var n = 0; n \u003c news.length; n++) news[n].remove();\n    loadInfo(handle, function(info){\n      wrap.removeAttribute(\"data-bm-pending\");\n      wrap.setAttribute(\"data-bm-outlet\", \"1\");\n      var compare = info \u0026\u0026 info.c, price = info \u0026\u0026 info.p;\n      if (!(compare \u0026\u0026 price)) {\n        var was = document.querySelector(\".product-info .price__was, .price__was\");\n        var cur = document.querySelector(\".product-info .price__current, .price__current\");\n        function parseHu(t){\n          t = String(t || \"\").replace(\/\\s\/g, \"\").replace(\"Ft\", \"\").replace(\/\\.\/g, \"\").replace(\",\", \".\");\n          return parseFloat(t);\n        }\n        if (was \u0026\u0026 cur) { compare = parseHu(was.textContent); price = parseHu(cur.textContent); }\n      }\n      if (compare \u0026\u0026 price \u0026\u0026 Number(compare) \u003e Number(price) + 0.5) {\n        var pct = Math.round((1 - Number(price) \/ Number(compare)) * 100);\n        addLabel(wrap, \"product-label product-label--sale bm-label-sale\", pct \u003e 0 ? (\"Megtakarítás: \" + pct + \"%\") : \"Akció\");\n      }\n      var root = document.querySelector(\".product-info\") || document;\n      var qtyLabel = stockText((info \u0026\u0026 info.q) || 1);\n      var stock = dedupeStock(root);\n      if (stock) {\n        stock.textContent = qtyLabel;\n        stock.classList.add(\"product-label\", \"product-label--custom\", \"bm-stock-pulse\");\n      } else {\n        addLabel(wrap, \"product-label product-label--custom bm-stock-pulse\", qtyLabel);\n      }\n    });\n  }\n  function run(){\n    var cards = document.querySelectorAll(\"product-card\");\n    for (var i = 0; i \u003c cards.length; i++) enhanceCard(cards[i]);\n    if (document.body \u0026\u0026 document.body.className.indexOf(\"template-product\") !== -1) enhancePdp();\n    else if (location.pathname.indexOf(\"\/products\/\") !== -1) enhancePdp();\n  }\n  if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", run);\n  else run();\n  var t = null;\n  new MutationObserver(function(){\n    if (t) clearTimeout(t);\n    t = setTimeout(run, 80);\n  }).observe(document.documentElement, { childList: true, subtree: true });\n})();\u003c\/script\u003e\u003c!--\/bm-outlet-badges--\u003e\u003cp\u003eA Lise lerakóasztal egy elegáns és funkcionális bútordarab, amely tökéletes kiegészítője lehet bármely modern enteriőrnek. Különleges kialakításának köszönhetően nemcsak praktikus, hanem esztétikai élményt is nyújt. Minimalista megjelenése miatt könnyedén illeszkedik különböző stílusú helyiségekbe. A matt porszórt festés kiemeli a fém szerkezet szépségét, miközben biztosítja annak tartósságát és ellenállóságát a mindennapi használat során. A Lise lerakóasztal négyféle színben kapható.\u003c\/p\u003e\n\u003cp\u003eElőrendelhető, várható érkezés: 2025.06.13.\u003c\/p\u003e","brand":"J-line Showroom","offers":[{"title":"Terrakotta","offer_id":57221853282628,"sku":"JL-47298-SR","price":86990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/36_835e2ce3-fc40-4a40-8b3f-dd650b53f01f.png?v=1741677994","url":"https:\/\/dutchhome.hu\/en\/products\/lise-fem-lerakoasztal-ajanlat","provider":"Dutch Home","version":"1.0","type":"link"}