在 Prestashop 中导出具有属性的产品库存

Export stock of products with attributes in Prestashop

在我的商店中,产品 A 具有不同的属性,让它们成为:
白色(还剩 12 个)、黑色(还剩 10 个)和红色(还剩 6 个)
我已经设法将所有产品及其类别、数量和属性导出到 csv 中,但我希望 table 如下所示:
产品 A / 白色 / 12
产品 A / 黑色 / 10
产品 A / 红色 / 6
产品 B / 尺码 S / 5
产品 B / 尺码 M / 6

所以每个产品组合的所有可用数量。 我现在的查询如下:

SELECT 
    p.id_product,
    p.id_category_default,
    GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ";") as categories,
    pa.reference,
    pl.name, 
    GROUP_CONCAT(DISTINCT(pal.name) SEPARATOR "; ") as combination, 
    p.price, 
    pq.quantity
FROM 7_ps_product p 
LEFT JOIN 7_ps_product_attribute pa ON (p.id_product = pa.id_product) 
LEFT JOIN 7_ps_stock_available pq ON (p.id_product = pq.id_product AND pa.id_product_attribute = pq.id_product_attribute) 
LEFT JOIN 7_ps_product_lang pl ON (p.id_product = pl.id_product) 
LEFT JOIN 7_ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute)
LEFT JOIN 7_ps_attribute_lang pal ON (pac.id_attribute = pal.id_attribute)
LEFT JOIN 7_ps_category_product cp ON (p.id_product = cp.id_product)
LEFT JOIN 7_ps_category_lang cl ON (cp.id_category = cl.id_category)
LEFT JOIN 7_ps_category c ON (cp.id_category = c.id_category)
WHERE pl.id_lang = 1 
AND pal.id_lang = 1 
GROUP BY pa.reference
ORDER BY p.id_product, pac.id_attribute

感谢您为帮助像我这样的人做出的巨大贡献!!

我已经像这样更改了您的查询,以便获得您需要的输出

SELECT 
   CONCAT(pl.name,' / ',pal.name,' / ', pq.quantity) AS required
FROM ps_product p 
LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product) 
LEFT JOIN ps_stock_available pq ON (p.id_product = pq.id_product AND pa.id_product_attribute = pq.id_product_attribute) 
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product) 
LEFT JOIN ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute)
LEFT JOIN ps_attribute_lang pal ON (pac.id_attribute = pal.id_attribute)
LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product)
LEFT JOIN ps_category_lang cl ON (cp.id_category = cl.id_category)
LEFT JOIN ps_category c ON (cp.id_category = c.id_category)
WHERE pl.id_lang = 1 
      AND pal.id_lang = 1 
GROUP BY p.id_product,pal.name
ORDER BY p.id_product, pac.id_attribute

我已经更改了 GROUP BY 和 SELECT 字段。我想这就是你需要的答案。