{"product_id":"exterminador-solar-de-insectos-230w-hasta-300m","title":"Exterminador Solar de Insectos 230W hasta 300m²","description":"\u003cstyle\u003e\n#mg3113{\n  --green:#08A56E;\n  --soft:#eff8f3;\n  --ink:#19382e;\n  max-width:880px;\n  margin:24px auto;\n  color:var(--ink);\n  font-family:inherit;\n  line-height:1.65;\n}\n#mg3113 *{box-sizing:border-box}\n#mg3113 h2,#mg3113 h3,#mg3113 p{margin:0}\n#mg3113 [hidden]{display:none!important}\n\n#mg3113 .mg-hero{\n  padding:35px 28px;\n  background:var(--soft);\n  border-radius:20px;\n}\n#mg3113 .mg-label{\n  display:block;\n  margin-bottom:13px;\n  color:var(--green);\n  font-size:12px;\n  font-weight:700;\n  letter-spacing:1.2px;\n  text-transform:uppercase;\n}\n#mg3113 h2{\n  font-size:clamp(29px,4.8vw,43px);\n  line-height:1.15;\n  letter-spacing:-.9px;\n  font-weight:750;\n}\n#mg3113 h2 span{color:var(--green)}\n#mg3113 .mg-hero p{\n  max-width:680px;\n  margin-top:18px;\n  font-size:17px;\n}\n#mg3113 .mg-section{\n  padding:29px 5px;\n}\n#mg3113 h3{\n  font-size:clamp(23px,3.6vw,29px);\n  line-height:1.25;\n  letter-spacing:-.4px;\n  font-weight:700;\n}\n#mg3113 .mg-section p{\n  margin-top:12px;\n  font-size:16px;\n}\n\n#mg3113 .mg-media{\n  display:block;\n  width:100%;\n  max-width:640px;\n  margin:0 auto 28px;\n  padding:0;\n  border:0;\n  background:#fff;\n}\n#mg3113 .mg-media img{\n  display:block;\n  width:100%;\n  max-width:100%;\n  height:auto;\n  max-height:none;\n  margin:0;\n  padding:0;\n  border:0;\n  border-radius:0;\n  object-fit:contain;\n}\n#mg3113 .mg-placeholder{\n  aspect-ratio:1\/1;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  padding:28px;\n  border:1px dashed #b4d9c8;\n  border-radius:16px;\n  background:var(--soft);\n  text-align:center;\n  color:#527365;\n}\n#mg3113 .mg-placeholder strong{\n  display:block;\n  font-size:19px;\n  color:var(--ink);\n}\n#mg3113 .mg-placeholder p{\n  max-width:340px;\n  margin:12px auto 0;\n  font-size:14px;\n}\n\n#mg3113 .mg-feature{\n  padding:24px;\n  background:var(--soft);\n  border-left:4px solid var(--green);\n  border-radius:0 16px 16px 0;\n}\n#mg3113 .mg-feature p{\n  margin-top:12px;\n  font-size:16px;\n}\n#mg3113 .mg-end{\n  padding:28px 5px 20px;\n}\n#mg3113 .mg-end\u003ep{\n  margin-bottom:20px;\n  max-width:670px;\n  font-size:24px;\n  font-weight:700;\n  line-height:1.3;\n}\n#mg3113 .mg-buy{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  gap:12px;\n  width:100%;\n  padding:17px 21px;\n  border:0;\n  border-radius:12px;\n  background:var(--green);\n  color:#fff;\n  font-family:inherit;\n  font-size:17px;\n  font-weight:700;\n  cursor:pointer;\n}\n#mg3113 .mg-buy:hover{background:#07885b}\n#mg3113 .mg-buy:disabled{\n  opacity:.6;\n  cursor:wait;\n}\n#mg3113 .mg-buy:focus-visible{\n  outline:3px solid var(--ink);\n  outline-offset:4px;\n}\n#mg3113 .mg-buy svg{\n  width:23px;\n  height:23px;\n  flex-shrink:0;\n}\n#mg3113 .mg-buy span{\n  flex:1;\n  text-align:center;\n}\n#mg3113 .mg-status{\n  min-height:24px;\n  margin-top:10px;\n  font-size:14px;\n}\n\n#mg3113-cart{\n  position:fixed;\n  inset:0 0 0 auto;\n  width:min(440px,100%);\n  max-width:100%;\n  height:100dvh;\n  max-height:100dvh;\n  margin:0;\n  padding:24px;\n  border:0;\n  background:#fff;\n  color:#19382e;\n  font-family:inherit;\n}\n#mg3113-cart::backdrop{\n  background:rgba(0,0,0,.45);\n}\n#mg3113-cart .mg-cart-head{\n  display:flex;\n  align-items:center;\n  justify-content:space-between;\n  gap:16px;\n}\n#mg3113-cart h2{\n  margin:0;\n  font-size:24px;\n}\n#mg3113-cart button{\n  padding:10px 14px;\n  background:#eff8f3;\n  border:0;\n  border-radius:8px;\n  font:inherit;\n  cursor:pointer;\n}\n#mg3113-cart ul{\n  list-style:none;\n  padding:0;\n  margin:22px 0;\n}\n#mg3113-cart li{\n  padding:15px 0;\n  border-bottom:1px solid #dcebe3;\n  line-height:1.5;\n}\n#mg3113-cart a{\n  display:block;\n  margin-top:20px;\n  padding:15px;\n  background:#08A56E;\n  color:#fff;\n  border-radius:10px;\n  text-decoration:none;\n  text-align:center;\n  font-weight:700;\n}\n\n@media(max-width:600px){\n  #mg3113{margin:18px auto}\n  #mg3113 .mg-hero{\n    padding:27px 20px;\n    border-radius:17px;\n  }\n  #mg3113 .mg-hero p{font-size:16px}\n  #mg3113 .mg-section{padding:25px 3px}\n  #mg3113 .mg-feature{padding:22px 19px}\n  #mg3113 .mg-end\u003ep{font-size:22px}\n}\n\u003c\/style\u003e\n\u003csection id=\"mg3113\" aria-label=\"Exterminador solar de insectos\"\u003e\n\u003cdiv class=\"mg-hero\"\u003e\n\u003cspan class=\"mg-label\"\u003eExterminador solar de insectos\u003c\/span\u003e\n\u003ch2\u003eQue los bichos no te hagan\u003cbr\u003e\u003cspan\u003eentrar antes de tiempo.\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp\u003eBaja el calor, te sentás afuera con algo para tomar… y empezás a espantar insectos en vez de disfrutar el rato.\u003c\/p\u003e\n\u003cp\u003eEste exterminador solar atrae mediante su luz a los insectos que se acercan y los elimina al entrar en contacto con la rejilla eléctrica.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"mg-section\"\u003e\n\u003ch3\u003eSin llevar un alargue hasta el jardín.\u003c\/h3\u003e\n\u003cp\u003eSu alimentación solar permite colocarlo afuera sin depender de un tomacorriente cercano. Ubicalo donde el panel reciba buena exposición al sol.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- Agregá la URL de la imagen en IMAGEN_USO, dentro del script. --\u003e\n\u003cfigure class=\"mg-media\"\u003e\u003cimg data-use-image=\"\" hidden=\"\" loading=\"lazy\" decoding=\"async\" alt=\"Exterminador solar de insectos instalado en un jardín, con el panel expuesto al sol\"\u003e\n\u003cdiv class=\"mg-placeholder\"\u003e\n\u003cdiv\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0758\/3698\/1562\/files\/modelo5_7c494a4a-2e8a-4a29-a576-c365d1a6cedf.png?v=1794331106\" alt=\"\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/figure\u003e\n\u003cdiv class=\"mg-feature\"\u003e\n\u003ch3\u003eVos seguí con lo tuyo.\u003c\/h3\u003e\n\u003cp\u003eMientras el equipo trabaja, podés seguir conversando o descansando, sin estar pendiente de perseguir cada insecto con una paleta.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"mg-end\"\u003e\n\u003cp\u003eUn motivo menos para terminar\u003cbr\u003eel rato afuera.\u003c\/p\u003e\n\u003cbutton type=\"button\" class=\"mg-buy\"\u003e \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" aria-hidden=\"true\"\u003e\n        \u003cpath d=\"M3 3h2l2.2 11.2a2 2 0 0 0 2 1.6H18a2 2 0 0 0 2-1.6L21 7H6\"\u003e\u003c\/path\u003e\n        \u003ccircle cx=\"10\" cy=\"20\" r=\"1\"\u003e\u003c\/circle\u003e\n        \u003ccircle cx=\"18\" cy=\"20\" r=\"1\"\u003e\u003c\/circle\u003e\n      \u003c\/svg\u003e \u003cspan\u003eAgregar al carrito\u003c\/span\u003e \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" aria-hidden=\"true\"\u003e\n        \u003cpath d=\"M4 12h15m-6-6 6 6-6 6\"\u003e\u003c\/path\u003e\n      \u003c\/svg\u003e \u003c\/button\u003e\n\u003cdiv class=\"mg-status\" role=\"status\" aria-live=\"polite\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\u003cdialog id=\"mg3113-cart\" aria-labelledby=\"mg3113-cart-title\"\u003e\n\u003cdiv class=\"mg-cart-head\"\u003e\n\u003ch2 id=\"mg3113-cart-title\"\u003eTu carrito\u003c\/h2\u003e\n\u003cbutton type=\"button\" data-close=\"\" aria-label=\"Cerrar carrito\"\u003e Cerrar \u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv data-content=\"\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003ca href=\"\/cart\"\u003eVer carrito\u003c\/a\u003e \u003c\/dialog\u003e \u003cscript\u003e\n(function(){\n  var root=document.getElementById('mg3113');\n\n  if(!root || root.dataset.ready) return;\n  root.dataset.ready='true';\n\n  \/* Pegá entre las comillas la URL de la imagen subida a Shopify. *\/\n  var IMAGEN_USO='';\n\n  var image=root.querySelector('[data-use-image]');\n  var placeholder=root.querySelector('.mg-placeholder');\n\n  if(IMAGEN_USO){\n    image.addEventListener('load',function(){\n      image.hidden=false;\n      placeholder.hidden=true;\n    });\n\n    image.addEventListener('error',function(){\n      image.hidden=true;\n      placeholder.hidden=false;\n    });\n\n    image.src=IMAGEN_USO;\n  }\n\n  var base=window.Shopify \u0026\u0026 window.Shopify.routes\n    ? window.Shopify.routes.root\n    : '\/';\n\n  var buy=root.querySelector('.mg-buy');\n  var label=buy.querySelector('span');\n  var status=root.querySelector('.mg-status');\n  var modal=document.getElementById('mg3113-cart');\n  var busy=false;\n\n  modal.querySelector('a').href=base+'cart';\n\n  modal.querySelector('[data-close]').addEventListener('click',function(){\n    modal.close();\n  });\n\n  modal.addEventListener('click',function(e){\n    if(e.target!==modal) return;\n\n    var b=modal.getBoundingClientRect();\n\n    if(\n      e.clientX\u003cb.left ||\n      e.clientX\u003eb.right ||\n      e.clientY\u003cb.top ||\n      e.clientY\u003eb.bottom\n    ){\n      modal.close();\n    }\n  });\n\n  async function json(url,options){\n    var response=await fetch(url,options);\n    var data=await response.json();\n\n    if(!response.ok){\n      throw new Error(\n        data.description ||\n        data.message ||\n        'No pudimos completar la solicitud.'\n      );\n    }\n\n    return data;\n  }\n\n  async function findVariant(){\n    var match=location.pathname.match(\/\\\/products\\\/([^\/]+)\/);\n\n    if(!match){\n      throw new Error(\n        'Abrí la página del producto para agregarlo al carrito.'\n      );\n    }\n\n    var product=await json(base+'products\/'+match[1]+'.js');\n\n    var matches=product.variants.filter(function(v){\n      return String(v.sku || '').trim()==='3113-0';\n    });\n\n    if(matches.length!==1){\n      throw new Error(\n        'No pudimos identificar el producto. Revisá la opción seleccionada en la tienda.'\n      );\n    }\n\n    var variant=matches[0];\n\n    if(!variant.available){\n      throw new Error('Este producto está agotado.');\n    }\n\n    return variant.id;\n  }\n\n  function money(cents,currency){\n    return new Intl.NumberFormat('es-UY',{\n      style:'currency',\n      currency:currency || 'UYU'\n    }).format(cents\/100);\n  }\n\n  async function openFallback(){\n    var content=modal.querySelector('[data-content]');\n    content.textContent='Cargando tu carrito…';\n\n    if(!modal.open){\n      modal.showModal();\n    }\n\n    try{\n      var cart=await json(base+'cart.js');\n      var list=document.createElement('ul');\n\n      cart.items.forEach(function(item){\n        var li=document.createElement('li');\n        var name=document.createElement('strong');\n        var detail=document.createElement('div');\n\n        name.textContent=item.product_title || item.title;\n        detail.textContent=\n          'Cantidad: '+item.quantity+\n          ' · '+money(item.final_line_price,cart.currency);\n\n        li.append(name,detail);\n        list.appendChild(li);\n      });\n\n      var total=document.createElement('p');\n      total.textContent=\n        'Subtotal: '+money(cart.total_price,cart.currency);\n\n      content.replaceChildren(list,total);\n\n    }catch(error){\n      content.textContent=\n        'El producto se agregó. Podés revisar tu compra desde “Ver carrito”.';\n    }\n  }\n\n  buy.addEventListener('click',async function(){\n    if(busy) return;\n\n    busy=true;\n    buy.disabled=true;\n    label.textContent='Agregando…';\n    status.textContent='';\n\n    var added=false;\n\n    try{\n      var id=await findVariant();\n      var drawer=document.querySelector('cart-drawer');\n\n      var nativeDrawer=\n        drawer \u0026\u0026\n        typeof drawer.getSectionsToRender==='function' \u0026\u0026\n        typeof drawer.renderContents==='function';\n\n      var payload={\n        items:[{\n          id:id,\n          quantity:1\n        }]\n      };\n\n      if(nativeDrawer){\n        var sections=drawer.getSectionsToRender().map(function(s){\n          return s.id;\n        });\n\n        if(sections.length){\n          payload.sections=sections.slice(0,5);\n        }\n\n        payload.sections_url=location.pathname;\n\n        if(typeof drawer.setActiveElement==='function'){\n          drawer.setActiveElement(buy);\n        }\n      }\n\n      var result=await json(base+'cart\/add.js',{\n        method:'POST',\n        headers:{\n          'Content-Type':'application\/json',\n          'Accept':'application\/json'\n        },\n        body:JSON.stringify(payload)\n      });\n\n      added=true;\n      label.textContent='Agregado al carrito';\n      status.textContent='El producto se agregó correctamente.';\n\n      try{\n        if(nativeDrawer \u0026\u0026 result.sections){\n          drawer.classList.remove('is-empty');\n          drawer.renderContents(result);\n        }else{\n          await openFallback();\n        }\n      }catch(drawerError){\n        await openFallback();\n      }\n\n    }catch(error){\n      label.textContent='Agregar al carrito';\n      status.textContent=added\n        ? 'El producto se agregó. Revisá tu carrito antes de agregarlo otra vez.'\n        : error.message;\n\n    }finally{\n      setTimeout(function(){\n        busy=false;\n        buy.disabled=false;\n        label.textContent='Agregar al carrito';\n      },added ? 1800 : 0);\n    }\n  });\n})();\n\u003c\/script\u003e","brand":"Clara (Yiwu Mayhome Import\u0026export Co.,ltd) (0.0 Unidades - 1.168,06 $)","offers":[{"title":"Default Title","offer_id":67951839478074,"sku":"3113-0","price":3890.0,"currency_code":"UYU","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0758\/3698\/1562\/files\/Portada_868c69a4-fa85-42f2-a484-f8bd69a03a35.png?v=1794330369","url":"https:\/\/milgenialuruguay.com\/products\/exterminador-solar-de-insectos-230w-hasta-300m","provider":"MilGenial Uruguay","version":"1.0","type":"link"}