{"product_id":"applicable-to-bmw-led-doors-welcome-lights-laser-lights-door-projection-floor-lights-x1-x2-x3-x4-x5-x6-7","title":"Proyector láser de luz de bienvenida LED para puerta BMW – X1 a X7","description":"\u003c!--cc-save-badge--\u003e\n\u003cstyle\u003e\n.cc-save-badge{display:inline-block;margin-left:10px;padding:3px 10px;border-radius:20px;background:#d21f1f;color:#fff;font-size:13px;font-weight:800;letter-spacing:.03em;vertical-align:middle;line-height:1.6;}\n.cc-save-note{flex-basis:100%;width:100%;margin-top:4px;font-size:13px;font-weight:600;color:#1e7d32;}\n\u003c\/style\u003e\n\u003cscript\u003e\n(function(){\n  var V=null;\n  function handle(){var m=location.pathname.match(\/\\\/products\\\/([^\\\/?#]+)\/);return m?m[1]:null;}\n  function load(){\n    if(V){return Promise.resolve(V);}\n    var h=handle(); if(!h){return Promise.reject();}\n    return fetch('\/products\/'+h+'.js').then(function(r){return r.json();}).then(function(p){V={};p.variants.forEach(function(v){V[String(v.id)]=v;});return V;});\n  }\n  function currentId(){\n    var el=document.querySelector('form[action*=\"\/cart\/add\"] [name=\"id\"]');\n    if(el \u0026\u0026 el.value){return String(el.value);}\n    var m=location.search.match(\/variant=(\\d+)\/); return m?m[1]:null;\n  }\n  function sep(c,p,t,d){var s=(c\/100).toFixed(p).split('.');return s[0].replace(\/(\\d)(?=(\\d{3})+$)\/g,'$1'+t)+(s[1]?d+s[1]:'');}\n  function money(c){\n    var p=(c%100===0)?0:2,f='';\n    try{f=String(window.themeGlobalVariables.settings.money_format||'');}catch(e){}\n    if(f.indexOf('{'+'{')\u003e-1){\n      var x=document.createElement('textarea');x.innerHTML=f.replace(\/\u003c[^\u003e]*\u003e\/g,'');f=x.value;\n      var k=(f.match(\/\\{\\{\\s*(\\w+)\\s*\\}\\}\/)||[])[1]||'amount',v;\n      if(k.indexOf('no_decimals')\u003e-1){p=0;}\n      if(k.indexOf('comma_separator')\u003e-1){v=sep(c,p,'.',',');}\n      else if(k.indexOf('apostrophe')\u003e-1){v=sep(c,p,\"'\",'.');}\n      else if(k.indexOf('period_and_space')\u003e-1){v=sep(c,p,' ','.');}\n      else if(k.indexOf('space_separator')\u003e-1){v=sep(c,p,' ',',');}\n      else{v=sep(c,p,',','.');}\n      return f.replace(\/\\{\\{\\s*\\w+\\s*\\}\\}\/,function(){return v;});\n    }\n    try{return new Intl.NumberFormat('en',{style:'currency',currency:window.Shopify.currency.active,minimumFractionDigits:p,maximumFractionDigits:p}).format(c\/100);}catch(e){}\n    return '$'+(c\/100).toFixed(p);\n  }\n  function render(){\n    load().then(function(map){\n      var v=map[currentId()];\n      var box=document.querySelector('.product-detail__price .card-product-price');\n      if(!box){return;}\n      var b=box.querySelector('.cc-save-badge'), n=box.querySelector('.cc-save-note');\n      if(v \u0026\u0026 v.compare_at_price \u0026\u0026 v.compare_at_price\u003ev.price){\n        var pct=Math.round((v.compare_at_price-v.price)*100\/v.compare_at_price);\n        if(!b){b=document.createElement('span');b.className='cc-save-badge';box.appendChild(b);}\n        if(!n){n=document.createElement('div');n.className='cc-save-note';box.appendChild(n);}\n        b.textContent='SAVE '+pct+'%';\n        n.textContent='You save '+money(v.compare_at_price-v.price)+' vs. buying separately';\n        b.style.display='';n.style.display='';\n      } else { if(b){b.style.display='none';} if(n){n.style.display='none';} }\n    }).catch(function(){});\n  }\n  var t=null;\n  function later(){clearTimeout(t);t=setTimeout(render,200);}\n  if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',render);}else{render();}\n  document.addEventListener('change',later,true);\n  try{new MutationObserver(function(m){for(var i=0;i\u003cm.length;i++){var x=m[i].target;if(x.closest \u0026\u0026 (x.closest('.cc-save-badge')||x.closest('.cc-save-note'))){return;}}later();}).observe(document.querySelector('.product-detail__price')||document.body,{childList:true,subtree:true,characterData:true});}catch(x){}\n})();\n\u003c\/script\u003e\n\u003c!--\/cc-save-badge--\u003e\n\u003ch3\u003eDescripción del producto\u003c\/h3\u003e\n\u003cp\u003eAñade una luz de bienvenida láser en la puerta de tu BMW. Cada unidad proyecta en el suelo un logotipo nítido en HD específico del modelo (de X1 a X7) al abrir la puerta, con una lente HD de 4 capas para una imagen clara y brillante y una carcasa de resina ABS resistente al calor.\u003c\/p\u003e\n\n\u003cp\u003eLa instalación sustituye directamente la luz de puerta de fábrica: sin cortar, taladrar ni desmontar la puerta.\u003c\/p\u003e\n\n\u003ch3\u003eCaracterísticas principales\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLente láser HD con cristal de 4 capas para una proyección clara y brillante\u003c\/li\u003e\n\u003cli\u003eCarcasa de resina ABS resistente al calor para una durabilidad prolongada\u003c\/li\u003e\n\u003cli\u003eDiseño del logotipo específico del modelo (X1–X7)\u003c\/li\u003e\n\u003cli\u003eInstalación como sustitución directa: sin desmontar la puerta\u003c\/li\u003e\n\u003cli\u003eDisponible en juego para 2 puertas (2 uds.) o juego completo para 4 puertas (4 uds.)\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eEspecificaciones\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTamaño de la unidad: 68 mm x 24 mm\u003c\/li\u003e\n\u003cli\u003eCompatibilidad: BMW X1, X2, X3, X4, X5, X6, X7\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003ePreguntas frecuentes\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eP: ¿Tengo que modificar las puertas para instalarla?\u003c\/strong\u003e\u003cbr\u003e\nR: No: es una sustitución directa plug-and-play de la luz de cortesía de la puerta de fábrica, sin cortes ni desmontaje.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eP: ¿Debo pedir el juego para 2 o para 4 puertas?\u003c\/strong\u003e\u003cbr\u003e\nR: El juego para 2 puertas cubre solo las puertas delanteras; el de 4 puertas cubre las cuatro para un efecto de bienvenida completo.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eP: ¿Se ajustará a mi modelo BMW exacto?\u003c\/strong\u003e\u003cbr\u003e\nR: Selecciona tu modelo (X1–X7) al finalizar la compra: el logotipo proyectado es específico de cada modelo.\u003c\/p\u003e\n\u003cstyle\u003e\n  .mb-20:has(.product_custom__field-heading){\n    background:#fdeaea;\n    border:2px solid #d21f1f;\n    border-radius:10px;\n    padding:16px 18px 18px;\n  }\n  .product_custom__field-heading{\n    color:#c41414;\n  }\n  .product_custom__field-description{\n    color:#a81111;\n  }\n  .mb-20:has(.product_custom__field-heading) .form-input{\n    border:2px solid #d21f1f;\n  }\n\u003c\/style\u003e\n\u003cscript\u003e\n(function(){\n  if (window.__bmwModelYearRequired) return;\n  window.__bmwModelYearRequired = true;\n  function fields(){\n    return Array.prototype.slice.call(document.querySelectorAll('input[name^=\"properties[\"]'))\n      .filter(function(i){ return \/BMW\\s*Model\/i.test(i.name) || \/BMW\\s*Model\/i.test(i.placeholder || ''); });\n  }\n  function mark(){\n    fields().forEach(function(i){\n      if (!i.hasAttribute('required')) {\n        i.setAttribute('required','required');\n        i.setAttribute('data-required-property','true');\n        if (i.placeholder \u0026\u0026 i.placeholder.indexOf('*') === -1) i.placeholder = i.placeholder + ' *';\n      }\n    });\n  }\n  function message(input, show){\n    var box = input.parentNode.querySelector('.bmw-req-msg');\n    if (!box \u0026\u0026 show){\n      box = document.createElement('div');\n      box.className = 'bmw-req-msg';\n      box.style.cssText = 'color:#c41414;font-size:13px;font-weight:600;margin:-8px 0 12px;';\n      box.textContent = 'Please enter your BMW model and production year before adding to cart.';\n      input.parentNode.insertBefore(box, input.nextSibling);\n    }\n    if (box) box.style.display = show ? '' : 'none';\n  }\n  function valid(){\n    var list = fields(), okAll = true, first = null;\n    list.forEach(function(i){\n      var empty = !i.value.trim();\n      message(i, empty);\n      if (empty){ okAll = false; if (!first) first = i; }\n    });\n    if (first){ try { first.focus(); first.scrollIntoView({behavior:'smooth', block:'center'}); } catch(e){} }\n    return okAll;\n  }\n  document.addEventListener('submit', function(e){\n    var f = e.target;\n    if (f \u0026\u0026 (f.action || '').indexOf('\/cart\/add') !== -1 \u0026\u0026 !valid()){\n      e.preventDefault(); e.stopImmediatePropagation();\n    }\n  }, true);\n  document.addEventListener('click', function(e){\n    var b = e.target.closest \u0026\u0026 e.target.closest('[name=\"add\"], .product-form__submit, .shopify-payment-button__button, .btn-checkout-dynamic button');\n    if (b \u0026\u0026 !valid()){ e.preventDefault(); e.stopImmediatePropagation(); }\n  }, true);\n  mark();\n  new MutationObserver(mark).observe(document.documentElement, {childList:true, subtree:true});\n})();\n\u003c\/script\u003e","brand":"Car Conceptor","offers":[{"title":"BMW X1 \/ 2 puertas (2 uds.)","offer_id":49094688047326,"sku":"3976380010","price":59.0,"currency_code":"USD","in_stock":true},{"title":"BMW X1 \/ 4 puertas (4 uds.)","offer_id":49094688080094,"sku":"3976380011","price":89.0,"currency_code":"USD","in_stock":true},{"title":"BMW X2 \/ 2 puertas (2 uds.)","offer_id":49094688112862,"sku":"3976380012","price":59.0,"currency_code":"USD","in_stock":true},{"title":"BMW X2 \/ 4 puertas (4 uds.)","offer_id":49094688145630,"sku":"3976380013","price":89.0,"currency_code":"USD","in_stock":true},{"title":"BMW X3 \/ 2 puertas (2 uds.)","offer_id":49094688178398,"sku":"3976380014","price":59.0,"currency_code":"USD","in_stock":true},{"title":"BMW X3 \/ 4 puertas (4 uds.)","offer_id":49094688211166,"sku":"3976380015","price":89.0,"currency_code":"USD","in_stock":true},{"title":"BMW X4 \/ 2 puertas (2 uds.)","offer_id":49094688243934,"sku":"3976380016","price":59.0,"currency_code":"USD","in_stock":true},{"title":"BMW X4 \/ 4 puertas (4 uds.)","offer_id":49094688276702,"sku":"3976380017","price":89.0,"currency_code":"USD","in_stock":true},{"title":"BMW X5 \/ 2 puertas (2 uds.)","offer_id":49094688309470,"sku":"3976380018","price":59.0,"currency_code":"USD","in_stock":true},{"title":"BMW X5 \/ 4 puertas (4 uds.)","offer_id":49094688342238,"sku":"3976380019","price":89.0,"currency_code":"USD","in_stock":true},{"title":"BMW X6 \/ 2 puertas (2 uds.)","offer_id":49094688375006,"sku":"3976380020","price":59.0,"currency_code":"USD","in_stock":true},{"title":"BMW X6 \/ 4 puertas (4 uds.)","offer_id":49094688407774,"sku":"3976380021","price":89.0,"currency_code":"USD","in_stock":true},{"title":"BMW X7 \/ 2 puertas (2 uds.)","offer_id":49094688440542,"sku":"3976380022","price":59.0,"currency_code":"USD","in_stock":true},{"title":"BMW X7 \/ 4 puertas (4 uds.)","offer_id":49094688473310,"sku":"3976380023","price":89.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0806\/9755\/7214\/files\/O1CN01KBv5ei2BF7T2cFueQ__2217612738308-0-cib.jpg?v=1790069065","url":"https:\/\/car-conceptor.com\/es\/products\/applicable-to-bmw-led-doors-welcome-lights-laser-lights-door-projection-floor-lights-x1-x2-x3-x4-x5-x6-7","provider":"Car Conceptor","version":"1.0","type":"link"}