Liquid, Javascript
Buenas, tengo una consulta, en la tienda tengo mas de 1980 collections y hago un filtrado por template, al tener 1980 solo me llega a detectar un maximo de 1000 y no consigo que se visualice toda la información que necesito ya que esta ordenado alfabeticamente y me llega solo hasta la letra G, estoy extrayendo la informacion de esta forma:
{% for collection in collections %}
{%- if collection.template_suffix contains "template_Y" or collection.template_suffix contains "template_X" -%}
{% render 'collection-card', section: section, collection: collection, card_style: 'standard', text_alignment: 'center', image: collection.image, show_product_count: false, hover_effect: 'scaling-up', title: collection.title %}
{%- endif -%}
{% endfor %}
Hice un filtrado para ver que información me implementa y el resultado es este
collections: 1000
template_suffix: template_Y 73
template_suffix: template_X: 48
Cuando miro cuantos realmente tengo son 1980 me pone que tengo 74template_Y y 100 template_X.
Alguien podría ayudarme a encontrar una forma de poder captar la información que necesito o como poder sobrepasar esos 1000 aun que sea con un pagination, infinite scroll o algún otra forma.
Gracias de ante mano.
Hola @Marta15,
Gracias por ponerte en contacto.
Solo para aclarar, las preguntas relacionadas con código quedan fuera del alcance de soporte del equipo de Shopify.
Sin embargo, mientras esperas por algún otro desarrollador responderte en este hilo, puedes:
Cordiales saludos,
Javier | Shopify
- ¿Te resultó útil mi respuesta? Dale Me gusta para hacérmelo saber
- ¿Resolvimos tu pregunta? Dale a Aceptar como solución
- Para saber más visita el Centro de ayuda de Shopify o nuestro Blog de Shopify
Entiendo que estás utilizando un bucle for con el objeto global de colecciones en tu código, verificando nombres de plantillas y campos de texto específicos. No estoy seguro si cada una de tus 1980 colecciones corresponde a una plantilla distinta.
Te sugiero usar la API de section rendering de Shopify para manejar grandes bloques de contenido HTML como tus 1980 colecciones. Esto mejorará el rendimiento de tu tema. Aquí tienes la documentación para empezar: Shopify Section Rendering API. Necesitarás conocimientos básicos en HTML y JavaScript para implementarlo y es la forma mas simple de manejar esta lógicas personalizadas desde el Front.
Vi que consultaste sobre la paginación en liquid, en liquid tienes un objeto de paginación que permite encapsular el bucle for:
El parametro by puede recibir diferentes valores númericos, no te recomiendo pasar de 100 elementos por temas de velocidad del lado del cliente.
{% paginate collections by 200 -%}
{% endpaginate %}
Leer mas sobre paginate:
https://shopify.dev/docs/api/liquid/objects/paginate
Te dejo un ejemplo simple de su uso:
// Define el endpoint de donde extraerás el HTML
const endpoint = 'TU_ENDPOINT_AQUI';
// https://url_tu_tienda/collections?page=2§ions=nombre_tu_archivo_section_liquid
// Define el ID o clase del elemento donde quieres mostrar el HTML
// Por ejemplo, '#miComponente' para un ID o '.miComponente' para una clase
const componenteIdOClase = 'IDENTIFICADOR_DEL_COMPONENTE';
// Realiza la solicitud fetch al endpoint
fetch(endpoint)
.then(response => {
// Asegúrate de que la respuesta es exitosa
if (!response.ok) {
throw new Error('La solicitud falló con el estado ' + response.status);
}
return response.text(); // Obtiene el texto (HTML) de la respuesta
})
.then(html => {
// Encuentra el elemento en el DOM
const elemento = document.querySelector(componenteIdOClase);
if (elemento) {
// Establece el HTML del elemento
elemento.innerHTML = html;
} else {
console.error('Elemento no encontrado con el identificador:', componenteIdOClase);
}
})
.catch(error => {
// Maneja cualquier error que ocurra durante la solicitud
console.error('Error al realizar la solicitud fetch:', error);
});
Espero te sirva
¿Alguna vez has creado una colección y has tenido problemas para añadir tus productos a...
By Ann Sep 10, 2024Una de las cosas que más presión genera a la hora de emprender con un negocio es conver...
By Teo Aug 20, 2024¿Alguna vez has visitado una página web lenta con imágenes pixeladas? ¿Qué haces cuando...
By Ann Aug 13, 2024