const firstUrl =
"/wp-json/wc/store/v1/products?per_page=" +
perPage +
"&page=1&orderby=date&order=desc";
const res = await fetch(firstUrl, {
credentials: "same-origin"
});
const totalPages = parseInt(res.headers.get("X-WP-TotalPages") || "1", 10);
const firstProducts = await res.json();
pageOrder = [];
for (let i = 2; i <= totalPages; i++) {
pageOrder.push(i);
}
pageOrder = shuffleArray(pageOrder);
window.__discnetFirstProducts = Array.isArray(firstProducts)
? shuffleArray(firstProducts)
: [];
pageIndex = 0;
}
async function fetchProductsByPage(page) {
const url =
"/wp-json/wc/store/v1/products?per_page=" +
perPage +
"&page=" +
page +
"&orderby=date&order=desc";
const res = await fetch(url, {
credentials: "same-origin"
});
const products = await res.json();
if (!Array.isArray(products)) return [];
return shuffleArray(products);
}
async function loadProducts() {
if (loading || finished) return;
const grid = getGrid();
if (!grid) return;
loading = true;
setButtonText("⏳ CARGANDO MÁS PRODUCTOS...");
renderSkeleton();
try {
let products = [];
if (window.__discnetFirstProducts) {
products = window.__discnetFirstProducts;
window.__discnetFirstProducts = null;
} else {
if (pageIndex >= pageOrder.length) {
finished = true;
removeSkeleton();
setButtonText("✅ HAS LLEGADO AL FINAL DEL CATÁLOGO");
loading = false;
return;
}
const nextPage = pageOrder[pageIndex];
pageIndex++;
products = await fetchProductsByPage(nextPage);
}
removeSkeleton();
if (!products.length) {
finished = true;
setButtonText("✅ HAS LLEGADO AL FINAL DEL CATÁLOGO");
loading = false;
return;
}
let html = "";
products.forEach(function (product) {
html += productCard(product);
});
grid.insertAdjacentHTML("beforeend", html);
setButtonText("🚀 CARGANDO MÁS PRODUCTOS...");
} catch (error) {
console.error("Error cargando productos Discnet:", error);
removeSkeleton();
setButtonText("⚠️ ERROR AL CARGAR PRODUCTOS");
}
loading = false;
}
function handleScroll() {
if (loading || finished) return;
const btn = getButton();
if (!btn) return;
const rect = btn.getBoundingClientRect();
const distanceToButton = rect.top - window.innerHeight;
if (distanceToButton < 700) {
loadProducts();
}
}
ready(async function () {
const grid = getGrid();
const btn = getButton();
if (!grid || !btn) return;
document.body.classList.add("discnet-solo-productos");
grid.innerHTML = "";
setButtonText("⏳ PREPARANDO PRODUCTOS...");
try {
await prepareRandomPages();
await loadProducts();
} catch (error) {
console.error("Error inicializando catálogo Discnet:", error);
setButtonText("⚠️ ERROR AL INICIAR CATÁLOGO");
}
btn.addEventListener("click", loadProducts);
window.addEventListener("scroll", handleScroll, { passive: true });
});
})();
});
--
Si quieres enlazar a un archivo JavaScript que resida en otro servidor (como
), entonces, por favor, usa
la página «Añadir código HTML» , ya que es un código HTML que enlaza a un archivo JavaScript.
Fin del comentario */
Inicio TECNOLOGIA Y COMPUTO CARGADOR DE LAPTOP – LENOVO 20V-3.25a 65W USB, REPUESTO PARA CARGADOR DE LAPTOP MARCA LENOVO, COMPRE AQUÍ
S/ 40.00 El precio original era: S/40.00. S/ 15.00El precio actual es: S/15.00.
S/ 43.00 El precio original era: S/43.00. S/ 15.00El precio actual es: S/15.00.
CARGADOR DE LAPTOP – LENOVO 20V-3.25a 65W USB, REPUESTO PARA CARGADOR DE LAPTOP MARCA LENOVO, COMPRE AQUÍ
S/ 36.00 El precio original era: S/36.00. S/ 15.00El precio actual es: S/15.00.
Pieza de repuesto para Laptop marca LENOVO. Reemplace el cargador de su laptop con el cargador LENOVO, no busque más.
✅ Tipo de cargador: Entrada USB
✅ Entrada: 100 a 240V AC
✅ Salida: DC 20V 3.25A
26 disponibles
Spanish
Valoraciones
No hay valoraciones aún.