Módulo de PrestaShop para obtener productos y categorías mediante AJAX. Diseñado para facilitar la navegación dinámica y la carga de contenido sin recargar la página. Funciona con categorías activas e inactivas.
- Obtención de subcategorías (incluye categorías inactivas)
- Listado de productos por categoría (funciona con categorías inactivas)
- Búsqueda en descripciones de categorías (todas las categorías)
- URLs amigables para SEO
- Compatibilidad con PrestaShop 1.7+
- Verificación automática de configuración robots.txt
- PrestaShop 1.7 o superior
- PHP 7.1 o superior
- Módulo instalado y activado
- JavaScript habilitado en el navegador
- Copiar la carpeta
categoryproductsal directoriomodules/de PrestaShop - Acceder al panel de administración > Módulos
- Buscar "Category Products"
- Hacer clic en "Instalar"
// La URL está disponible globalmente como 'categoryproducts_ajax_url'
fetch(categoryproducts_ajax_url, {
method: 'POST',
body: new URLSearchParams({
action: 'get_categories',
id_category: 123 // ID de la categoría padre
})
});
// Respuesta:
{
"success": true,
"subcategories": [
{
"id_category": "456",
"name": "Nombre de Subcategoría",
"active": true,
"url": "url-amigable-subcategoria"
}
]
}fetch(categoryproducts_ajax_url, {
method: 'POST',
body: new URLSearchParams({
id_category: 123 // ID de la categoría
})
});
// Respuesta:
{
"success": true,
"products": [
{
"id": "789",
"name": "Nombre del Producto",
"active": true,
"url": "url-amigable-producto"
}
],
"category_active": true
}fetch(categoryproducts_ajax_url, {
method: 'POST',
body: new URLSearchParams({
action: 'search_description',
search_term: "término a buscar", // Término a buscar en las descripciones
active_filter: 'active' // Opcional: 'active', 'inactive', 'all' (por defecto: 'active')
})
});
// Respuesta:
{
"success": true,
"categories": [
{
"id": "456",
"name": "Nombre de Categoría",
"active": true,
"url": "url-amigable-categoria"
}
],
"total_found": 1,
"debug": {
"total_categories_searched": 50,
"search_term": "término a buscar",
"active_filter": "active",
"language_id": 1
}
}Valores de active_filter:
'active'(por defecto): Solo busca en categorías activas'inactive': Solo busca en categorías desactivadas'all': Busca en todas las categorías (activas y desactivadas)
| Parámetro | Tipo | Descripción | Requerido | Por defecto |
|---|---|---|---|---|
| action | string | Tipo de acción ('get_categories', 'search_description') | No | - |
| id_category | int | ID de la categoría a consultar | Sí* | - |
| search_term | string | Término a buscar en las descripciones de categorías | Sí** | - |
| active_filter | string | Filtro de estado de categorías: 'active', 'inactive', 'all' | No | 'active' |
*Requerido para obtener subcategorías o productos **Requerido cuando action es 'search_description'
categoryproducts/
├── README.md
├── categoryproducts.php # Archivo principal del módulo
├── controllers/
│ └── front/
│ └── ajax.php # Controlador AJAX
└── views/ # Vistas y assets (si se necesitan)
actionFrontControllerSetMedia: Para registrar la URL del controlador AJAX
- Las respuestas siempre incluyen un campo
success(boolean) - Los errores incluyen un campo
messagecon la descripción - Las URLs generadas son SEO-friendly
- Límite de 100 productos por consulta
- Los productos se ordenan por ID de producto (ASC)
- Funciona con categorías inactivas: Permite obtener subcategorías y productos de categorías desactivadas
- Campo
active: Todas las respuestas incluyen el estado activo/inactivo de categorías - Solo productos activos: Por seguridad, solo se devuelven productos activos
- Búsqueda en descripciones de categorías con conteo de resultados
- Manejo de errores mejorado con mensajes descriptivos
- Verificación automática de configuración robots.txt
Para modificar el módulo, considerar:
- Mantener la estructura de respuesta consistente
- Documentar nuevos parámetros o funcionalidades
- Actualizar las versiones compatibles en
ps_versions_compliancy - Probar las modificaciones en un entorno de desarrollo
Para reportar problemas o sugerir mejoras:
- Verificar la configuración del módulo
- Comprobar los logs de PrestaShop
- Contactar con el equipo de desarrollo
- Nueva funcionalidad: Parámetro
active_filterpara búsqueda en descripciones - Permite buscar solo en categorías activas, inactivas o ambas
- Actualizada documentación con ejemplos del nuevo parámetro
- Añadida información de debug mejorada con el filtro utilizado
- Simplificación: Eliminada funcionalidad 'search_model' innecesaria
- Código más limpio y mantenible
- Funcionalidad de búsqueda consolidada en 'search_description'
- Bugfix: Corregido error SQL con palabra reservada 'position'
- Cambiado ordenamiento de productos de 'position' a 'id_product'
- Cambiado ordenamiento de categorías de 'position' a 'name'
- Actualizada documentación para reflejar los cambios de ordenamiento
- Nueva funcionalidad: Búsqueda por número de modelo (action: 'search_model')
- Detección automática: Búsqueda automática cuando se proporciona 'model_number' sin action
- Búsqueda en nombres y descripciones de categorías
- Respuestas específicas para búsquedas exitosas y sin resultados
- Añadido manejo de errores para número de modelo requerido
- Actualizada documentación con ejemplos de búsqueda por modelo
- Soporte para categorías inactivas: El módulo ahora funciona con categorías desactivadas
- Añadido campo
activeen respuestas de categorías y productos - Añadido campo
category_activeen respuesta de productos - Mejorado manejo de descripciones de categorías (protección contra valores null)
- Actualizada documentación para reflejar el soporte de categorías inactivas
- Añadida página de configuración del módulo
- Verificación automática de configuración robots.txt
- Enlaces directos a documentación desde el panel de administración
- Mejorada la experiencia de usuario del módulo
- Eliminada la limpieza específica de nombres de productos
- Renombrada la funcionalidad de búsqueda a 'search_description'
- Mejorada la generalización del módulo para cualquier tipo de tienda
- Mejorada la estructura del código y manejo de errores
- Añadido contador de resultados en búsquedas
- Optimizado el rendimiento de las búsquedas
- Implementación inicial
- Soporte para obtención de categorías
- Soporte para obtención de productos