• User

    Inventario prestashop 1.6 (con la funzione mysql manager)

    Ciao a tutti, come da titolo avrei bisogno di estrapolare un semplice inventario da un negozio prestashop.
    L'inventario deve tener di conto di tutti i prodotti presenti in magazzino, del prezzo di acquisto, di quello di vendita del codice di riferimento e delle quantità.
    Esempio:

    [TABLE="width: 500"]

    [TD]ID PRODOTTO[/TD]
    [TD]CODICE DI RIFERIMENTO[/TD]
    [TD]NOME DEL PRODOTTO[/TD]
    [TD]PREZZO DI ACQUISTO[/TD]
    [TD]PREZZO FINALE SENZA IVA[/TD]
    [TD]QUANTITA IN MAGAZZINO[/TD]
    [/TR]

    [TD]1[/TD]
    [TD]prod001[/TD]
    [TD]Prodotto 1[/TD]
    [TD]10?[/TD]
    [TD]20?[/TD]
    [TD]12[/TD]
    [/TR]

    [TD]2[/TD]
    [TD]prod002[/TD]
    [TD]Prodotto 2[/TD]
    [TD]15?[/TD]
    [TD]30?[/TD]
    [TD]23[/TD]
    [/TR]

    [TD]...[/TD]
    [TD]...[/TD]
    [TD]...[/TD]
    [TD]...[/TD]
    [TD]...[/TD]
    [TD]...[/TD]
    [/TR]
    [/TABLE]

    Ho iniziato a scrivere una query sql avvalendomi della funzione "manager SQL" di Prestashop... qualcosa è venuto fuori ma il risultato non è congruo alla realtà (mancano alcuni prodotti). Qualcuno sa dirmi dove sto sbagliando (a seguire la query che sto usando)?

    
    SELECT DISTINCT 
    ps_stock.id_product AS  'ID PRODOTTO', 
    ps_stock.reference AS  'CODICE DI RIFERIMENTO', 
    ps_product_lang.name AS  'NOME DEL PRODOTTO', 
    ps_product.wholesale_price AS  'PREZZO DI ACQUISTO', 
    (ps_product.price + ps_attribute_impact.price) AS  'PREZZO FINALE SENZA IVA', 
    ps_stock.physical_quantity AS  'QUANTITA IN MAGAZZINO'
    
    
    FROM ps_stock
    
    
    INNER JOIN ps_product 
    ON ps_stock.id_product = ps_product.id_product
    
    
    JOIN ps_product_lang 
    ON ps_stock.id_product = ps_product_lang.id_product
    
    
    JOIN ps_product_attribute 
    ON ps_stock.id_product = ps_product_attribute.id_product
    
    
    JOIN ps_attribute_impact 
    ON ps_product_attribute.id_product_attribute = ps_attribute_impact.id_attribute
    
    
    WHERE ps_product_lang.id_lang =1
    AND id_warehouse =1
     
    ORDER BY 'NOME DEL PRODOTTO'
    
    

  • User

    up 🙂


  • User

    Alla fine ho risolto...stavo sbagliando un po' tutto, sintassi, semantica, mestiere....
    nella speranza che possa essere utile a qualcuno oltre a me pubblico la soluzione:

    
    SELECT s.id_stock AS 'ID STOCK', 
    s.reference AS 'CODICE DI RIFERIMENTO', 
    pl.name AS 'NOME DEL PRODOTTO', 
    p.wholesale_price AS 'PREZZO DI ACQUISTO', 
    IFNULL(p.price + pai.price, p.price) AS 'PREZZO FINALE SENZA IVA', 
    s.physical_quantity AS 'QUANTITA IN MAGAZZINO'
    FROM ps_stock s
    LEFT JOIN ps_product p ON s.id_product = p.id_product
    LEFT JOIN ps_product_lang pl ON s.id_product = pl.id_product
    LEFT JOIN ps_product_attribute pa ON s.id_product = pa.id_product
    LEFT JOIN ps_attribute_impact pai ON s.id_product = pai.id_product
    WHERE pl.id_lang = 1 AND s.id_warehouse = 1 
    GROUP BY s.id_stock
    ORDER BY s.id_stock