document.addEventListener("DOMContentLoaded",()=>{ function existeImagen(url){ return new Promise(resolve =>{ const img=new Image(); img.onload=() =>resolve(true); img.onerror= () =>resolve(false); img.src=url; }); } const Ruta=window.location.pathname.split('/') let car=document.getElementById("cant-car") let id=Number(localStorage.getItem("Valor_id_producto")); let rango=Number(localStorage.getItem("rango_id")); if(id > rango){ id=1 localStorage.setItem("Valor_id_producto",String(id)) location.reload() }else if(id < 1){ id=rango localStorage.setItem("Valor_id_producto",String(id)) location.reload() } let descripcion_producto=document.getElementById("descripcion-producto") let carrito=JSON.parse(localStorage.getItem("carrito")) || []; fetch("/producto/productos_venta") .then(response =>{ if(!response.ok){ console.warn("Los datos no han llegado") } return response.json(); }) .then(data => { producto_json=data descripcion_producto.innerHTML="" let nombre_cortado; let precio_int; elemento=producto_json.find(id_json => id_json.nombre_url == Ruta[2]) console.log(Ruta[2]) console.log(elemento.id) const id_superior=elemento.id +1 const id_inferior= elemento.id -1 nombre_cortado=elemento.nombre.replace("-","
") if(!elemento){ console.warn("No se encontro el id") return } if(Number(elemento.precio_unitario) === 0){ precio_int="---" }else{ precio_int=Number(elemento.precio_unitario) } elemento_HTML=`
` elemento_HTML+=`
` let promesas=[] for( i=1 ; i<=4 ; i++){ if(!elemento.imagen_preview || !elemento.imagen_preview_grande){ continue } let urlChica=`${RESOURCES}/Preview_Resources/${elemento.imagen_preview + i}.png` let urlGrande=`${RESOURCES}/Preview_Resources/${elemento.imagen_preview_grande + i}.png` let p=existeImagen(urlChica).then(existe =>{ if(existe){ elemento_HTML+=`
`; } return ""; }); promesas.push(p); } Promise.all(promesas).then(previews =>{ elemento_HTML+=previews.join("") elemento_HTML+=`
` elemento_HTML+= `

${elemento.descripcion_parrafo}

    ${elemento.descripcion_lista.map(item =>`
  • ${item.texto}
  • `).join('')}
` if(elemento.id =="8"){ elemento_HTML+=`

${nombre_cortado}

${elemento.parrafo_imagen}

` }else if(elemento.id =="11" || elemento.id=="14" || elemento.id=="17" || elemento.id == "18"){ elemento_HTML+= `

${nombre_cortado}

${elemento.parrafo_imagen}

` }else if(elemento.id== "16"){ elemento_HTML+=`

${nombre_cortado}

${elemento.parrafo_imagen}

` }else{ elemento_HTML+=`

${nombre_cortado}

${elemento.parrafo_imagen}

` } if(elemento.id== "7" || elemento.id=="8" || elemento.id=="10" || elemento.id=="11" || elemento.id=="15" || elemento.id=="20" || elemento.id == "19"){ elemento_HTML+= `
` elemento_HTML+=`

$/

${precio_int}

.00

` }else if(elemento.id =="13"){ elemento_HTML+= `
` elemento_HTML+=`

$/

${precio_int}

.00

` }else if(elemento.id=="17"){ elemento_HTML+= `
` elemento_HTML+=`

$/

${precio_int}

.00

` }else{ elemento_HTML+=`

$/

${precio_int}

.00

` } elemento_HTML+=`

Garantía certificada incluida

Compra rápida y segura

Envíos a todo el Perú

`; descripcion_producto.innerHTML=elemento_HTML const tabs=document.querySelectorAll(".tab"); const contents=document.querySelectorAll(".tab-content"); tabs.forEach(tab =>{ tab.addEventListener("click", () =>{ const target=tab.dataset.tab tabs.forEach(t =>t.classList.remove("texto-choose")); contents.forEach(c => c.classList.remove("activo")); tab.classList.add("texto-choose"); document.getElementById(target).classList.add("activo"); }) }) const right_arrow=document.getElementById("flecha-derecha") right_arrow.addEventListener("click",()=>{ if(id_superior > producto_json.length){ const elemento_inicial=producto_json.find(id_json => id_json.id == 1) window.location.href='/producto/'+ elemento_inicial.nombre_url return; } const elemento_superior=producto_json.find(id_json => id_json.id == id_superior) window.location.href='/producto/'+ elemento_superior.nombre_url } ) const left_arrow=document.getElementById("flecha-izquierda") left_arrow.addEventListener("click", () =>{ if(id_inferior <= 0){ const elemento_ultimo=producto_json.find(id_json => id_json.id == producto_json.length) window.location.href='/producto/' + elemento_ultimo.nombre_url } const elemento_inferior=producto_json.find(id_json => id_json.id == id_inferior) window.location.href='/producto/' + elemento_inferior.nombre_url } ) document.addEventListener("click" , (e) =>{ if(e.target.classList.contains("miniatura")){ let imagen_principal=document.getElementById("principal") let ruta=imagen_principal.src let href=e.target.dataset.grande imagen_principal.src=href e.target.src=ruta e.target.dataset.grande=ruta } if(e.target.classList.contains("boton-verde")){ car.classList.remove('ocultar') let btn_añadir=e.target.closest(".contenedor-boton-2") const id_principal=btn_añadir.dataset.id; Valor_header_visual=parseInt(car.innerText) let productoExistente=carrito.find(item => String(item.id) === String(id_principal)) if(productoExistente){ productoExistente.cantidad+=1 productoExistente.precio_subtotal=productoExistente.cantidad * productoExistente.precio_unitario localStorage.setItem("carrito",JSON.stringify(carrito)) }else{ fetch('../productos_venta.json') .then(response =>{ if(!response.ok){ throw new Error("No se pudo sacar los datos del json") } return response.json(); }) .then(data =>{ let productos=data Valor_header_visual+=1 let nuevo_producto=productos.find(item_2 => item_2.id == id_principal) car.innerText=String(Valor_header_visual) nuevo_producto.cantidad+=1 nuevo_producto.precio_subtotal=nuevo_producto.cantidad * nuevo_producto.precio_unitario nuevo_producto.imagen=BASE_URL+nuevo_producto.imagen carrito.push(nuevo_producto) Valor_header=String(Valor_header_visual) localStorage.setItem("carrito",JSON.stringify(carrito)) localStorage.setItem("Valor_header",Valor_header); }) .catch(error =>{ console.error("Error al obtener los productos: ", error) }) } } }) }) }) })