async function showInfoProduct(getProduct) { const product = JSON.parse(getProduct); const primaryImage = product.images[0]; const secundaryImage = product.images[1]; // Formatear el precio const formattedPrice = (price) => { const num = Number(price); if (isNaN(num)) return "$ 0.00"; return ( "$ " + num.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2, }) ); }; // HTML principal del producto const html = `

${product.description}

${formattedPrice( product.price )} ${ product.oldPrice ? ` ${formattedPrice( product.oldPrice )} -${Math.round( (1 - product.price / product.oldPrice) * 100 )}% ` : "" }
Código: ${product.code}
${product.stock > 0 ? "Disponible" : "Agotado"}
${ product.stock > 0 ? `
` : "" }
${ product.stock > 0 ? ` ` : `` }
`; // Mostrar el modal const { isDismissed } = await Swal.fire({ html, width: "850px", showConfirmButton: false, showCloseButton: true, backdrop: true, customClass: {}, didOpen: () => { // Manejar cambio de imágenes const thumbnails = document.querySelectorAll(".thumbnail"); const mainImage = document.getElementById("mainProductImage"); thumbnails.forEach((thumb) => { thumb.addEventListener("click", function () { // Remover clase active de todas las miniaturas thumbnails.forEach((t) => t.classList.remove("active")); // Añadir clase active a la miniatura clickeada this.classList.add("active"); // Cambiar imagen principal mainImage.src = this.src; // Efecto de fade mainImage.style.opacity = 0; setTimeout(() => { mainImage.style.opacity = 1; }, 100); }); }); // Manejar cantidad const qtyInput = document.getElementById("productQty"); document.getElementById("increaseQty")?.addEventListener("click", () => { if (parseInt(qtyInput.value) < parseInt(qtyInput.max)) { qtyInput.value = parseInt(qtyInput.value) + 1; } }); document.getElementById("decreaseQty")?.addEventListener("click", () => { if (parseInt(qtyInput.value) > parseInt(qtyInput.min)) { qtyInput.value = parseInt(qtyInput.value) - 1; } }); // Botón de existencias document .getElementById("checkStockBtn") ?.addEventListener("click", () => { showStockModal(product.branches); }); // Botones de compartir document.querySelectorAll(".share-btn").forEach((button) => { // Crear tooltip para "Copiado" const tooltip = document.createElement("span"); tooltip.className = "copied-tooltip"; tooltip.textContent = "Copiado!"; button.appendChild(tooltip); button.addEventListener("click", function () { const platform = this.getAttribute("data-platform") || "copy"; if (platform === "copy") { copyToClipboard(product.code); // Mostrar tooltip tooltip.classList.add("show"); setTimeout(() => { tooltip.classList.remove("show"); }, 1500); } else { shareProduct(product, platform); } }); }); // Botón de WhatsApp document .getElementById("whatsappConsultBtn") ?.addEventListener("click", () => { const message = `Hola, estoy interesado en el producto: ${product.description} (Código: ${product.code}). ¿Podrían darme más información? https://electronica2001es.com/search2.php?js=${product.code}`; const whatsappUrl = `https://api.whatsapp.com/send?phone=50378607797&text=${encodeURIComponent( message )}`; window.open(whatsappUrl, "_blank"); }); // Botón añadir al carrito document.getElementById("addToCartBtn")?.addEventListener("click", () => { const quantity = document.getElementById("productQty").value; addToCart(product, quantity); Swal.close(); }); // Botón comprar ahora document.getElementById("buyNowBtn")?.addEventListener("click", () => { const quantity = document.getElementById("productQty").value; buyNow(product, quantity); Swal.close(); }); }, }); } // Función auxiliar para copiar al portapapeles function copyToClipboard(code) { const url = `https://electronica2001es.com/search2.php?js=${code}`; navigator.clipboard .writeText(url) .then(() => {}) .catch((err) => { console.error("Error al copiar al portapapeles:", err); }); } const Allbranches = [ { nombre: "Ahuachapán", direccion: "Primera Calle Poniente Barrio El Centro No. 1-1, Ahuachapan", email: "ventas.ah@electronica2001es.com", telefonos: ["(503)2413-3262", "2413-3268"], horarios: { semana: "Lun - Vie / 8:00 AM - 5:00 PM", sabado: "Sábado / 8:00 AM - 1:00 PM", }, }, { nombre: "Escalón", direccion: "Paseo General Escalón, Frente a Banco De America Central, San Salvador", email: "ventas.escalon@electronica2001es.com", telefonos: ["(503)2201-2001", "2201-2009", "2201-2006"], horarios: { semana: "Lun - Vie / 8:30 AM - 5:30 PM", sabado: "Sábado / 9:00 AM - 5:00 PM", }, }, { nombre: "Santa Ana", direccion: "Primera Calle OTE. AV. Independencia Sur Edificio Zamora Segunda Planta, Santa Ana", email: "ventas.sta@electronica2001es.com", telefonos: ["(503)2441-1065", "2441-1674", "2441-1173"], horarios: { semana: "Lun - Vie / 8:00 AM - 5:00 PM", sabado: "Sábado / 8:00 AM - 2:00 PM", }, }, { nombre: "Plaza Morazan", direccion: "Primera Calle Poniente y Cuarta AV. Sur No. 5, San Salvador", email: "plaza.morazan@electronica2001es.com", telefonos: ["(503)2523-2001", "2523-2005", "2523-2006"], horarios: { semana: "Lun - Vie / 8:00 AM - 5:30 PM", sabado: "Sábado / 8:00 AM - 4:00 PM", }, }, { nombre: "San Miguel", direccion: "8a. Calle Poniente y AV. Gerardo Barrios No. 501, San Miguel", email: "ventas.sm@electronica2001es.com", telefonos: ["(503)2645-2001"], horarios: { semana: "Lun - Vie / 8:00 AM - 5:30 PM", sabado: "Sábado / 8:00 AM - 4:00 PM", }, }, { nombre: "Calle Arce", direccion: "Calle Arce y 11 AV. Sur No. 635, San Salvador", email: "ventas.arce@electronica2001es.com", telefonos: ["(503)2133-2001", "2133-2002", "2133-2003"], horarios: { semana: "Lun - Vie / 8:00 AM - 5:30 PM", sabado: "Sábado / 8:00 AM - 4:00 PM", }, }, { nombre: "Sonsonate", direccion: "Calle Obispo Marroquin y AV. Rafael Campos 1-1, Frente a Catedral", email: "ventas.sonsonate@electronica2001es.com", telefonos: ["(503)2486-2000", "2486-2001"], horarios: { semana: "Lun - Vie / 8:00 AM - 5:00 PM", sabado: "Sábado / 8:00 AM - 2:00 PM", }, }, ]; // Función para mostrar el modal de existencias function showStockModal(branches) { const availableCount = branches.filter((b) => b.cantidad > 0).length; const totalCount = branches.length; const availabilityPercentage = Math.round( (availableCount / totalCount) * 100 ); const html = `

Disponibilidad icono Disponibilidad en sucursales

Consulta el stock en nuestras sucursales físicas

${availabilityPercentage}% de cobertura
Sucursales con stock ${availableCount}
Total sucursales ${totalCount}
${branches .map( (branch, i) => ` ` ) .join("")}
Sucursal Disponibilidad
${ branch.cantidad > 0 ? ` ` : ` ` }
${ branch.nombre }
${ Allbranches[i].direccion || "Dirección no disponible" }
${branch.cantidad > 0 ? `Disponible` : "Agotado"} ${ branch.cantidad > 0 ? ` ` : ` ` }
`; Swal.fire({ html, width: "700px", confirmButtonText: "Cerrar", showCloseButton: true, background: "white", customClass: { popup: "premium-swal-popup", confirmButton: "premium-confirm-btn", }, didOpen: () => { // Efecto de carga progresiva para las filas const rows = document.querySelectorAll(".branch-list tbody tr"); rows.forEach((row, index) => { setTimeout(() => { row.style.opacity = "1"; }, index * 50); }); }, }); } function shareProduct(product, platform) { const shareUrl = `https://electronica2001es.com/search2.php?js=${product.code}`; const text = `Mira este producto: ${product.description} (${shareUrl})`; if (platform === "facebook") { const url = `https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent( shareUrl )}`; window.open(url, "_blank"); } else if (platform === "instagram") { Swal.fire({ icon: "info", title: "Compartir en Instagram", text: "Por el momento, Instagram no permite compartir directamente desde el navegador. Puedes copiar el enlace.", }); return; } else { // WhatsApp - Compartir con el número del cliente const url = `https://wa.me/?text=${encodeURIComponent(text)}`; window.open(url, "_blank"); } } // // Modificar el event listener del botón de WhatsApp en la función showInfoProduct: // document.getElementById("whatsappConsultBtn")?.addEventListener("click", () => { // const message = `Hola, estoy interesado en el producto: ${product.description} (Código: ${product.code}). ¿Podrían darme más información?`; // // Número de WhatsApp de la empresa (503 7860-7797) // const whatsappUrl = `https://wa.me/50378607797?text=${encodeURIComponent(message)}`; // window.open(whatsappUrl, "_blank"); // }); function buyNow(product, quantity) { // Primero agregamos al carrito como en addToCart const form = document.createElement("form"); form.method = "POST"; form.action = ""; form.style.display = "none"; const fields = { code: product.code, cantidadProd: quantity, nombre: product.description, imagen: product.images[0], precio: product.price, }; for (const name in fields) { const input = document.createElement("input"); input.type = "hidden"; input.name = name; input.value = fields[name]; form.appendChild(input); } document.body.appendChild(form); // Simular envío con redirección luego de añadir al carrito const request = new XMLHttpRequest(); request.open("POST", form.action, true); request.onload = function () { if (request.status >= 200 && request.status < 300) { window.location.href = "https://electronica2001es.com/cart.php"; } else { console.error("Error al añadir al carrito"); } }; const formData = new FormData(form); request.send(formData); } function addToCart(product, quantity) { const form = document.createElement("form"); form.method = "POST"; form.action = ""; form.style.display = "none"; const fields = { code: product.code, cantidadProd: quantity, nombre: product.description, imagen: product.images[0], precio: product.price, }; for (const name in fields) { const input = document.createElement("input"); input.type = "hidden"; input.name = name; input.value = fields[name]; form.appendChild(input); } document.body.appendChild(form); form.submit(); } // Estrellas bajo el título const style = document.createElement("style"); style.innerHTML = ` .product-stars { margin-top: 8px; display: flex; gap: 5px; } .product-stars svg { width: 20px; height: 20px; fill: orange; } `; document.head.appendChild(style); const observer = new MutationObserver(() => { const header = document.querySelector(".product-header"); if (header && !header.querySelector(".product-stars")) { const stars = document.createElement("div"); stars.className = "product-stars"; stars.innerHTML = ` `; header.appendChild(stars); } }); observer.observe(document.body, { childList: true, subtree: true });