{"product_id":"papel-mural-edificios-dibujo","title":"Papel mural edificios dibujo","description":"\u003cstyle\u003e\n    .tw-calculator {\n        font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n        width: 100%;\n        padding: 20px;\n        border: 1px solid #e8e8e8;\n        border-radius: 4px;\n        background-color: #fafafa;\n        color: #333;\n        margin-bottom: 20px;\n        box-sizing: border-box;\n    }\n    .tw-calculator h3 {\n        font-size: 14px;\n        text-transform: uppercase;\n        letter-spacing: 1px;\n        margin-top: 0;\n        margin-bottom: 20px;\n    }\n    .field-group {\n        margin-bottom: 15px;\n    }\n    .field-group label {\n        display: block;\n        font-size: 12px;\n        margin-bottom: 5px;\n        font-weight: bold;\n    }\n    .field-group select, .field-group input {\n        width: 100%;\n        padding: 10px;\n        border: 1px solid #ccc;\n        border-radius: 2px;\n        box-sizing: border-box;\n        font-size: 14px;\n        background-color: #fff;\n    }\n    .info-text {\n        font-size: 11px;\n        color: #666;\n        margin-bottom: 10px;\n    }\n    .area-display {\n        font-size: 13px;\n        color: #555;\n        margin-top: 15px;\n        display: flex;\n        justify-content: space-between;\n    }\n    .price-display {\n        margin-top: 15px;\n        padding-top: 15px;\n        border-top: 2px solid #e8e8e8;\n        font-size: 18px;\n        font-weight: bold;\n        display: flex;\n        justify-content: space-between;\n    }\n    .price-display span:last-child {\n        color: #000;\n    }\n\n    \/* OCULTAR ELEMENTOS NATIVOS DE SHOPIFY *\/\n    product-info quantity-input, \n    .product-form__quantity, \n    .quantity-selector,\n    .quantity__input,\n    variant-selects,\n    variant-radios,\n    .product-form__input--dropdown,\n    .product__tax,\n    .price, \n    .product__price,\n    .price--large {\n        display: none !important;\n    }\n\u003c\/style\u003e\n\u003cdiv class=\"tw-calculator\"\u003e\n\u003ch3\u003eCalculadora de Pedido\u003c\/h3\u003e\n\u003cdiv class=\"field-group\"\u003e\n\u003clabel for=\"calc-material\"\u003eSelecciona el tipo de papel\u003c\/label\u003e\u003cselect id=\"calc-material\"\u003e\n\u003coption data-name=\"Papel Mural Rustic\" data-price=\"17000\" value=\"45476208312499\"\u003ePapel Mural Rustic ($17.000 m2)\u003c\/option\u003e\n\u003coption data-name=\"Papel Mural Lino\" data-price=\"17000\" value=\"45476208345267\"\u003ePapel Mural Lino ($17.000 m2)\u003c\/option\u003e\n\u003coption data-name=\"Papel Mural Canva\" data-price=\"17000\" value=\"45476208378035\"\u003ePapel Mural Canva ($17.000 m2)\u003c\/option\u003e\n\u003coption data-name=\"Adhesivo Para Muro\" data-price=\"19000\" value=\"45476208410803\"\u003eAdhesivo Para Muro ($19.000 m2)\u003c\/option\u003e\n\u003c\/select\u003e\n\u003c\/div\u003e\n\u003cp class=\"info-text\"\u003eSi vas a utilizar decimales, utiliza un punto (ej: 2.5)\u003c\/p\u003e\n\u003cdiv style=\"display: flex; gap: 15px;\"\u003e\n\u003cdiv style=\"flex: 1;\" class=\"field-group\"\u003e\n\u003clabel for=\"calc-width\"\u003eAncho en metros\u003c\/label\u003e \u003cinput placeholder=\"0.00\" min=\"0\" step=\"0.01\" id=\"calc-width\" type=\"number\"\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"flex: 1;\" class=\"field-group\"\u003e\n\u003clabel for=\"calc-height\"\u003eAltura en metros\u003c\/label\u003e \u003cinput placeholder=\"0.00\" min=\"0\" step=\"0.01\" id=\"calc-height\" type=\"number\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"area-display\"\u003e\n\u003cspan\u003eM² a cobrar (redondeado):\u003c\/span\u003e \u003cstrong\u003e\u003cspan id=\"rounded-area\"\u003e0\u003c\/span\u003e m²\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"price-display\"\u003e\n\u003cspan\u003ePrecio Total:\u003c\/span\u003e \u003cspan id=\"total-price\"\u003e$0\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ch1\u003e\n\u003cscript\u003e\n    document.addEventListener('DOMContentLoaded', function() {\n        const materialSelect = document.getElementById('calc-material');\n        const widthInput = document.getElementById('calc-width');\n        const heightInput = document.getElementById('calc-height');\n        const roundedAreaSpan = document.getElementById('rounded-area');\n        const totalPriceSpan = document.getElementById('total-price');\n\n        \/\/ Buscar el formulario EXACTO del carrito\n        const shopifyCartForm = document.querySelector('form[action*=\"\/cart\/add\"]'); \n\n        function calculatePrice() {\n            const selectedOption = materialSelect.options[materialSelect.selectedIndex];\n            const variantId = selectedOption.value; \n            const materialPrice = parseFloat(selectedOption.getAttribute('data-price')) || 17000;\n            const materialName = selectedOption.getAttribute('data-name');\n            \n            const width = parseFloat(widthInput.value) || 0;\n            const height = parseFloat(heightInput.value) || 0;\n\n            const exactArea = width * height;\n            const roundedArea = Math.ceil(exactArea); \n            const total = roundedArea * materialPrice;\n\n            roundedAreaSpan.textContent = roundedArea;\n            const formattedPrice = new Intl.NumberFormat('es-CL', {\n                style: 'currency', currency: 'CLP', minimumFractionDigits: 0\n            }).format(total);\n            totalPriceSpan.textContent = formattedPrice;\n\n            \/\/ INYECCIÓN BLINDADA AL CARRITO DE SHOPIFY\n            if (shopifyCartForm) {\n                \/\/ 1. INYECTAR CANTIDAD (Corrección principal)\n                \/\/ Buscamos TODOS los inputs de cantidad en toda la página, no solo en el formulario\n                let qtyInputs = document.querySelectorAll('input[name=\"quantity\"]');\n                \n                if (qtyInputs.length \u003e 0 \u0026\u0026 roundedArea \u003e 0) {\n                    qtyInputs.forEach(function(input) {\n                        input.value = roundedArea;\n                        \/\/ Forzamos a Shopify a \"darse cuenta\" de que cambiamos el valor\n                        input.dispatchEvent(new Event('change', { bubbles: true }));\n                    });\n                } else if (roundedArea \u003e 0) {\n                    \/\/ Fallback extremo: Si no hay inputs, creamos uno oculto a la fuerza\n                    let newQtyInput = shopifyCartForm.querySelector('input[name=\"quantity\"][type=\"hidden\"]');\n                    if (!newQtyInput) {\n                        newQtyInput = document.createElement('input');\n                        newQtyInput.type = 'hidden';\n                        newQtyInput.name = 'quantity';\n                        shopifyCartForm.appendChild(newQtyInput);\n                    }\n                    newQtyInput.value = roundedArea;\n                }\n\n                \/\/ 2. INYECTAR ID DE VARIANTE\n                let formVariantInput = shopifyCartForm.querySelector('[name=\"id\"]');\n                if (formVariantInput) {\n                    formVariantInput.value = variantId;\n                    formVariantInput.dispatchEvent(new Event('change', { bubbles: true }));\n                } else {\n                    let newVariantInput = shopifyCartForm.querySelector('input[name=\"id\"][type=\"hidden\"]');\n                    if (!newVariantInput) {\n                        newVariantInput = document.createElement('input');\n                        newVariantInput.type = 'hidden';\n                        newVariantInput.name = 'id';\n                        shopifyCartForm.appendChild(newVariantInput);\n                    }\n                    newVariantInput.value = variantId;\n                }\n\n                \/\/ 3. INYECTAR NOTAS EXACTAS\n                if (width \u003e 0 \u0026\u0026 height \u003e 0) {\n                    updateHiddenProperty('Ancho exacto (m)', width);\n                    updateHiddenProperty('Alto exacto (m)', height);\n                    updateHiddenProperty('Material seleccionado', materialName); \n                }\n            }\n        }\n\n        function updateHiddenProperty(name, value) {\n            const inputName = `properties[${name}]`;\n            let hiddenInput = shopifyCartForm.querySelector(`input[name=\"${inputName}\"]`);\n            if (!hiddenInput) {\n                hiddenInput = document.createElement('input');\n                hiddenInput.type = 'hidden';\n                hiddenInput.name = inputName;\n                shopifyCartForm.appendChild(hiddenInput);\n            }\n            hiddenInput.value = value;\n        }\n\n        materialSelect.addEventListener('change', calculatePrice);\n        widthInput.addEventListener('input', calculatePrice);\n        heightInput.addEventListener('input', calculatePrice);\n        \n        \/\/ Ejecutar con un pequeñísimo retraso para darle tiempo al tema de Shopify a cargar todo\n        setTimeout(calculatePrice, 500);\n    });\n\u003c\/script\u003e Papel Mural Edificios Dibujo: la ciudad de sus sueños en la pared de su pieza.\u003c\/h1\u003e\n\u003cp\u003eImagina abrir la puerta de la pieza de tu hijo o hija y encontrar una pequeña ciudad esperándolo: edificios en tonos pastel, personas paseando, una familia tomando once en una terraza. Eso es exactamente lo que logra este papel mural: transformar cuatro paredes en un lugar donde la imaginación tiene espacio para crecer.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eDiseñado para acompañar su infancia \u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eUn ambiente cálido, elegante y lleno de historias \u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eCada detalle de esta ilustración —los balcones con flores, el señor leyendo el diario, la niña caminando de la mano de su mamá— está pensado para generar calma y ternura en el espacio donde más tiempo pasan tus hijos: su pieza. Los colores suaves en rosa, celeste y gris se integran fácil con cualquier mobiliario, sin saturar ni sobrecargar el ambiente.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eCalidad premium que se nota desde el primer día\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e Sabemos que para ti lo más importante es que ese espacio sea seguro, bonito y duradero. Por eso este papel mural está impreso en material de alta calidad, con colores nítidos y un acabado que se mantiene intacto con el paso del tiempo. Nada de tonos desteñidos ni texturas baratas: la transformación de la pieza se ve profesional desde el primer momento.\u003c\/p\u003e\n\u003cp\u003eMás que un papel mural, es la posibilidad de darle a tu hijo un rincón propio, distinto, que estimula su imaginación cada vez que lo mira antes de dormir. Una decoración con la que va a crecer y que vas a disfrutar tú también, cada vez que entres a esa pieza.\u003c\/p\u003e","brand":"GrafDeco","offers":[{"title":"Default Title","offer_id":45684545749171,"sku":"PMI-1","price":0.0,"currency_code":"CLP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0707\/6469\/1635\/files\/Papelmuraledificiosdibujo.png?v=1783990756","url":"https:\/\/grafdeco.cl\/products\/papel-mural-edificios-dibujo","provider":"GrafDeco","version":"1.0","type":"link"}