Hace unos días, un cliente nos pidió que encontráramos qué productos tenía en la tienda sin cierta característica. Porque quería saber si le faltaba alguno por ponerle la característica.
Cuando queremos saber algo como esto, podemos comprar módulos, pero Prestashop tiene una herramienta muy poderosa (si sabes algo de SQL) para poder realizar consultas directamente a la base de datos. Os vamos a mostrar estas dos consultas (productos con una característica y productos sin una característica) para que podáis aprender a realizar vuestras propias consultas.
En ambos casos hay que ir a Parámetros Avanzados>Base de datos>Gestor SQL y pinchar en Añadir una nueva consulta SQL.
Consulta SQL: Productos con cierta característica asignada.
Para ello os proponemos esta consulta:
SELECT * FROM `ps_feature_product` WHERE `id_feature_value` LIKE '24'
24 en el ejemplo es el ID de la característica que podemos encontrar editando la característica y mirando la url.
Esta consulta muestra todos los productos con característica X. Puedes modificarla para buscar sólo en ciertas categorías (ver ejemplo siguiente).
Consulta SQL: Productos sin cierta característica asignada.
La consulta base para ver qué productos no tienen cierta característica asignada (el contrario al anterior) podría ser:
SELECT `p`.`id_product` FROM `ps_product` `p` WHERE `p`.`id_product` NOT IN (SELECT `id_product` FROM `ps_feature_product` WHERE `id_feature` = 11)
Si queremos ver aquellos productos que no tienen una característica asignada Y están en ciertas categorías podemos hacer:
SELECT `p`.`id_product` FROM `ps_product` `p` WHERE `p`.`id_product` NOT IN (SELECT `id_product` FROM `ps_feature_product` WHERE `id_feature` = 11) AND (`p`.`id_category_default`=32 OR `p`.`id_category_default`=33 OR `p`.`id_category_default`=14 OR `p`.`id_category_default`=15)
En esta última consulta miramos si está en una de 4 categorías (32,33,14 o 15).
Esperamos que os sirva.
Os recomendamos los siguientes productos relacionados con la informática:
Estaba buscando solución a mi problema y he llegado a esta pagina. Me pregunto si podría alguien ayudarme
Tengo una característica dada de alta con muchos valores.
Estos valores algunos se han quedado obsoletos, porque el producto que tenia asociado dicho valor de dicha característica está eliminado, o en le mejor de los casos desactivado.
Quisiera saber que consulta debo hacer para saber que valores de dicha característica están en uso, es decir, que el producto que usa dicho valor está dado de alta y activado.
Gracias anticipadas por si alguien me correspondiente.
Gonzalo, deberías poder cambiar la consulta que te hemos dejado añadiendo la condición que el producto está activo. No damos soporte por el blog, pero si consigues alguien que sepa algo de MYSQL no es complicado.