Jump to content

Ordenar productos dentro de una categoría según otras categorías


Douscents

Recommended Posts

Buenas, necesito ayuda a ver si alguien puede ayudarme

Necesito ordenar unos productos dentro de la tienda, basándome en estos requisitos:

  • Tenemos por un lado una arquitectura de categorías tipo hombre, mujer...
  • Al mismo nivel tengo otras categorías  que son temporadas (otoño 2023).
  • Los productos están asignados a la tipología de categorías tipo (hombre,mujer...) pero su categoría principal es la de la temporada
  • Son más de 20.000 productos, una ordenación manual dentro de cada categoría es imposible, pues hay días que se cambian cientos productos (vienen de un ERP)

El cliente me pide que dentro de hombre, mujer... salgan los productos ordenados según su temporada. Es decir, primero los de la última temporada Otoño 2023, luego los de Verano 2023... y así hacia atrás...

 

He mirado el core de prestashop pero habría que tocar muchas cosas y no estoy seguro que funcionase... ¿Alguien puedo ayudarme en esto?

 

PD: para que alguién entienda la estructura, muestro un resumen de como lo tenemos jercarquicamente

  • Hombre
    • Zapatillas
    • Zapatos
    • Ropa
  • Mujer
    • Zapatillas
    • Zapatos
    • Ropa
  • Niño
    • Zapatillas
    • Zapatos
    • Ropa
  • Otoño 2023
  • Verano 2023
  • Primavera 2023
  • Invierno 2023

 

 

 

Link to comment
Share on other sites

Amigo este requerimiento esta a lo menos bastante complicado. Lo que se me ocurre para que no tengas que tocar el código es modificar el valor del campo position en la BD en la tabla category_product. Lo que voy a explicar a continuación no lo he probado en ningún entorno antes, por tanto, su uso es bajo tu propio riesgo. Te recomiendo hacer respaldo de esta tabla antes de modificar nada. 

La consulta seria algo así:

UPDATE `ps_category_product` SET position = 0 WHERE id_category = X AND id_product IN (SELECT id_product FROM ps_category_product WHERE id_category = Y)

Lo que estas haciendo aquí es poniéndole la posición 0 (la primera posición en el listado) a los productos de la categoría X (en este caso empezarías por "Hombre" por ejemplo) que también pertenezcan a la categoría Y (en este caso "Otoño 2023"). Con eso ya tendrías dentro de la categoría Hombre como los primeros productos a mostrar los que pertenezcan también a Otoño 2023.

Luego repites el proceso y vas variando la categoría Y y aumentando position de uno en uno.

Cuando termines con la categoría Hombre, empiezas de nuevo con la siguiente categoría, por ejemplo Mujer.

Si metes todo esto dentro de un script en PHP podrías ejecutarlo periódicamente sin problema.

Espero te sirva de algo la explicación.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...