consulta sql para exportar productos con atributos y combinaciones

Tema en 'Instalación, configuración y personalización' iniciado por Marc, 12/12/18.

  1. Marc

    Marc Aprendiz de Prestashop

    1
    0
    1
    Hola, tengo esta consulta de SQL en la que me da toda la información del producto que necesito. el problema es que me lo da de solo el primer producto de mi catalogo y no de todos . Alguien me puede ayudar ?



    SELECT m.name AS manufacturer, p.id_product, pl.name, GROUP_CONCAT(DISTINCT(al.name) SEPARATOR ", ") AS combinations,

    GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ",") AS categories, p.price, pa.price, p.id_tax_rules_group, p.wholesale_price,
    p.reference, p.supplier_reference, p.id_supplier, p.id_manufacturer, p.upc, p.ecotax, p.weight, s.quantity,
    pl.description_short, pl.description, pl.meta_title, pl.meta_keywords, pl.meta_description, pl.link_rewrite,
    pl.available_now, pl.available_later, p.available_for_order, p.date_add, p.show_price, p.online_only, p.condition,
    p.id_shop_default
    FROM ipu_product p
    LEFT JOIN ipu_product_lang pl ON (p.id_product = pl.id_product)
    LEFT JOIN ipu_manufacturer m ON (p.id_manufacturer = m.id_manufacturer)
    LEFT JOIN ipu_category_product cp ON (p.id_product = cp.id_product)
    LEFT JOIN ipu_category_lang cl ON (cp.id_category = cl.id_category)
    LEFT JOIN ipu_category c ON (cp.id_category = c.id_category)
    LEFT JOIN ipu_stock_available s ON (p.id_product = s.id_product)
    LEFT JOIN ipu_product_tag pt ON (p.id_product = pt.id_product)
    LEFT JOIN ipu_product_attribute pa ON (p.id_product = pa.id_product)
    LEFT JOIN ipu_product_attribute_combination pac ON (pac.id_product_attribute = pa.id_product_attribute)
    LEFT JOIN ipu_attribute_lang al ON (al.id_attribute = pac.id_attribute)
    WHERE pl.id_lang = 1
    AND cl.id_lang = 1
    AND p.id_shop_default = 1
    AND c.id_shop_default = 1
    GROUP BY pac.id_product_attribute
     
  2.  
    Comunidad Prestashop orgullosamente patrocinada por el hosting prestashop de FactoriaDigital.com con soporte en español.
  3. Josraso

    Josraso Lo cortes no quita lo valiente. Miembro del equipo

    719
    52
    28
    Lo unico que te puedo decir que he probado tu consulta, cambiando el prefijo de la base de datos y me ha exportado todos los productos.
     
  4. cmartin1

    cmartin1 Aprendiz de Prestashop

    1
    0
    1
    A mi tampoco me funciona la consulta, sólo me exporta una línea.
    No tengo mucha experiencia con SQL y no he sabido encontrar el problema pero por si sirve de algo pongo a continuación la consulta con varias líneas comentadas, esta sí que exporta toda la base de datos, obviamente no es lo que querías pero creo que el problema proviene de alguna incorrección en las líneas que he comentado.


    SELECT m.name AS manufacturer,
    p.id_product,
    pl.name,
    # GROUP_CONCAT(DISTINCT(al.name) SEPARATOR ", ") AS combinations,
    # GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ",") AS categories,
    p.price,
    pa.price,
    p.id_tax_rules_group,
    p.wholesale_price,
    p.reference,
    p.supplier_reference,
    p.id_supplier,
    p.id_manufacturer,
    p.upc,
    p.ecotax,
    p.weight,
    s.quantity,
    pl.description_short,
    pl.description,
    pl.meta_title,
    pl.meta_keywords,
    pl.meta_description,
    pl.link_rewrite,
    pl.available_now,
    pl.available_later,
    p.available_for_order,
    p.date_add,
    p.show_price,
    p.online_only,
    p.condition,
    p.id_shop_default
    FROM ipu_product p
    LEFT JOIN ipu_product_lang pl ON (p.id_product = pl.id_product)
    LEFT JOIN ipu_manufacturer m ON (p.id_manufacturer = m.id_manufacturer)
    LEFT JOIN ipu_category_product cp ON (p.id_product = cp.id_product)
    LEFT JOIN ipu_category_lang cl ON (cp.id_category = cl.id_category)
    LEFT JOIN ipu_category c ON (cp.id_category = c.id_category)
    LEFT JOIN ipu_stock_available s ON (p.id_product = s.id_product)
    LEFT JOIN ipu_product_tag pt ON (p.id_product = pt.id_product)
    LEFT JOIN ipu_product_attribute pa ON (p.id_product = pa.id_product)
    # LEFT JOIN ipu_product_attribute_combination pac ON (pac.id_product_attribute = pa.id_product_attribute)
    # LEFT JOIN ipu_attribute_lang al ON (al.id_attribute = pac.id_attribute)
    WHERE pl.id_lang = 1
    AND cl.id_lang = 1
    AND p.id_shop_default = 1
    AND c.id_shop_default = 1
    #GROUP BY pac.id_product_attribute