Jump to content

Obtener combinaciones de productos y stock


martimcfly

Recommended Posts

Trasteando un poco en PHPMyAdmin he conseguido una consulta SQL que me devuelve para cada combinación de cada producto el stock disponible (tomé como base la consulta SQL que realiza el controlador Product para cargar la página de un producto), la consulta es la siguiente:

 

SELECT p.reference AS Referencia, GROUP_CONCAT(al.name ORDER BY al.name) AS 'Talla/Color', sa.quantity as Cantidad
FROM ps_product p, ps_product_attribute pa
INNER JOIN ps_product_attribute_shop pas ON (pas.id_product_attribute = pa.id_product_attribute AND pas.id_shop = 1)
LEFT JOIN ps_stock_available sa ON (sa.id_product = pa.id_product AND sa.id_product_attribute = IFNULL(pa.id_product_attribute, 0) AND sa.id_shop = 1 )
LEFT JOIN ps_product_attribute_combination pac ON pac.id_product_attribute = pa.id_product_attribute
LEFT JOIN ps_attribute a ON a.id_attribute = pac.id_attribute
LEFT JOIN ps_attribute_group ag ON ag.id_attribute_group = a.id_attribute_group
LEFT JOIN ps_attribute_lang al ON a.id_attribute = al.id_attribute
LEFT JOIN ps_attribute_group_lang agl ON ag.id_attribute_group = agl.id_attribute_group
INNER JOIN ps_attribute_shop attribute_shop ON (attribute_shop.id_attribute = a.id_attribute AND attribute_shop.id_shop = 1)
WHERE pa.id_product = p.id_product AND al.id_lang = 4 AND agl.id_lang = 4
GROUP BY p.reference, pac.id_product_attribute
ORDER BY p.id_product

 

El resultado que produce es algo como esto:

 

Referencia | Talla/Color | Cantidad

0000001 | 18,ROJO | 3

0000001 | 19,ROJO | 5

0000002 | 22,BLANCO | 23

 

Mi pregunta es, ¿cómo puedo modificar la consulta para que las diferentes combinaciones y cantidades aparezcan en una única línea para cada Referencia de producto? Algo del tipo:

 

Referencia | Talla/Color | Cantidad

0000001 | 18,ROJO / 19,ROJO | 3/5

0000002 | 22,BLANCO | 23

 

(No es necesario que sea exactamente igual, la idea es tener la información de las combinaciones de un producto y sus diferentes stocks en la misma línea).

¿Es posible hacer lo que estoy pidiendo?

También decir que he probado algunos módulos pero ninguno sacaba la información como necesito, o al menos no conseguí que lo hicieran.

Gracias y saludos.

Link to comment
Share on other sites

  • 3 weeks later...
Guest
This topic is now closed to further replies.
×
×
  • Create New...