{"product_id":"marmoleum-piano","title":"Marmoleum Piano","description":"\u003cp\u003eEen verfijnd, gespikkeld dessin dat uni kleuren zachter maakt en gemakkelijk combineert.\u003c\/p\u003e\u003cul\u003e\n\u003cli\u003eMerk: Forbo\u003c\/li\u003e\n\u003cli\u003eMateriaal: natuurlijk linoleum\u003c\/li\u003e\n\u003cli\u003eRolbreedte: 200 cm\u003c\/li\u003e\n\u003cli\u003eDikte: 2,5 mm\u003c\/li\u003e\n\u003cli\u003eRollengte: maximaal 32 meter\u003c\/li\u003e\n\u003cli\u003ePrijs per m2: € 46,90 incl. btw\u003c\/li\u003e\n\u003cli\u003ePrijs per strekkende meter (200 cm breed, 2 m2): € 93,80 incl. btw\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003eBestellen kan per 5 cm lengte. De prijs per m2 en de totaalprijs worden bij het bestellen getoond. Marmoleum wordt geleverd op een rol van 200 cm breed; 1 strekkende meter is 2 m2 en kost € 93,80 incl. btw.\u003c\/p\u003e\u003cscript data-marmoleum-2m-calculator\u003e\n(function () {\n  function applyMarmoleumWidth() {\n    var calc = document.querySelector('carpet-length-calculator');\n    if (!calc || calc.dataset.marmoleumWidthPatched === 'true') return;\n    calc.dataset.marmoleumWidthPatched = 'true';\n    var intro = calc.querySelector('.floor-calculator__intro');\n    if (intro) intro.textContent = 'Het Marmoleum is 2 meter breed. Vul de lengte in strekkende meters in; bestellen kan per 5 cm.';\n    var areaOutput = calc.querySelector('[data-carpet-area]');\n    if (areaOutput \u0026\u0026 areaOutput.previousElementSibling) areaOutput.previousElementSibling.textContent = 'Oppervlakte bij 2 meter breed';\n    var input = calc.querySelector('[data-carpet-length]');\n    function sync() {\n      var raw = parseFloat((input \u0026\u0026 input.value || '').replace(',', '.'));\n      var quantity = document.querySelector('input[name=\"quantity\"]');\n      var form = quantity \u0026\u0026 quantity.form;\n      if (!form) return;\n      function setProperty(name, value) {\n        var field = form.querySelector('input[name=\"' + name + '\"]');\n        if (!field) {\n          field = document.createElement('input');\n          field.type = 'hidden';\n          field.name = name;\n          form.appendChild(field);\n        }\n        field.value = value;\n        field.setAttribute('value', value);\n      }\n      setProperty('properties[Breedte]', '2 meter');\n      if (!raw || raw \u003c= 0) return;\n      var units = Math.max(1, Math.ceil((raw * 20) - 0.000001));\n      var meters = units \/ 20;\n      quantity.value = String(units);\n      setProperty('properties[Lengte]', new Intl.NumberFormat('nl-NL', { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(meters) + ' strekkende meter');\n      setProperty('properties[Oppervlakte]', new Intl.NumberFormat('nl-NL', { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(meters * 2) + ' m2');\n      if (areaOutput) areaOutput.textContent = new Intl.NumberFormat('nl-NL', { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(meters * 2) + ' m2';\n      var total = calc.querySelector('[data-carpet-total]');\n      var priceCents = parseInt(calc.dataset.priceCents || '0', 10);\n      if (total \u0026\u0026 priceCents) total.textContent = new Intl.NumberFormat('nl-NL', { style: 'currency', currency: 'EUR' }).format((units * priceCents) \/ 100);\n    }\n    if (input) {\n      input.addEventListener('input', function () { requestAnimationFrame(sync); setTimeout(sync, 150); });\n      input.addEventListener('blur', function () { requestAnimationFrame(sync); setTimeout(sync, 150); });\n      input.addEventListener('change', function () { requestAnimationFrame(sync); setTimeout(sync, 150); });\n    }\n    var quantity = document.querySelector('input[name=\"quantity\"]');\n    if (quantity \u0026\u0026 quantity.form) quantity.form.addEventListener('submit', sync, true);\n    document.addEventListener('submit', sync, true);\n    requestAnimationFrame(sync);\n    setTimeout(sync, 200);\n  }\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', applyMarmoleumWidth, { once: true });\n  } else {\n    applyMarmoleumWidth();\n  }\n  document.addEventListener('shopify:section:load', applyMarmoleumWidth);\n}());\n\u003c\/script\u003e","brand":"Forbo","offers":[{"title":"3650 polar bear","offer_id":58460599943512,"sku":"FOR-MAR-PIANO-3650","price":4.69,"currency_code":"EUR","in_stock":true},{"title":"3601 warm grey","offer_id":58460599976280,"sku":"FOR-MAR-PIANO-3601","price":4.69,"currency_code":"EUR","in_stock":true},{"title":"3607 grey dusk","offer_id":58460600009048,"sku":"FOR-MAR-PIANO-3607","price":4.69,"currency_code":"EUR","in_stock":true},{"title":"3629 frosty grey","offer_id":58460600041816,"sku":"FOR-MAR-PIANO-3629","price":4.69,"currency_code":"EUR","in_stock":true},{"title":"3630 angora","offer_id":58460600074584,"sku":"FOR-MAR-PIANO-3630","price":4.69,"currency_code":"EUR","in_stock":true},{"title":"3631 otter","offer_id":58460600107352,"sku":"FOR-MAR-PIANO-3631","price":4.69,"currency_code":"EUR","in_stock":true},{"title":"3634 meadow","offer_id":58460600140120,"sku":"FOR-MAR-PIANO-3634","price":4.69,"currency_code":"EUR","in_stock":true},{"title":"3642 periwinkle","offer_id":58460600172888,"sku":"FOR-MAR-PIANO-3642","price":4.69,"currency_code":"EUR","in_stock":true},{"title":"3645 Neptune blue","offer_id":58460600205656,"sku":"FOR-MAR-PIANO-3645","price":4.69,"currency_code":"EUR","in_stock":true},{"title":"3647 nettle green","offer_id":58460600238424,"sku":"FOR-MAR-PIANO-3647","price":4.69,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1010\/7902\/3960\/files\/marmoleum-piano-3650.webp?v=1789301992","url":"https:\/\/cachetvloershop.nl\/products\/marmoleum-piano","provider":"Cachet vloershop","version":"1.0","type":"link"}