Bonsoir,
je suis en train de créer une contribution permettant de réaliser des statistiques avec affichage graphique (en me basant sur des librairies gratuites).
J'ai installées 2 contributions, dont une créée par un utilisateur de ce forum (Xaglo si je me trompe pas - superbe contrib au demeurant !!!).
Le but serait que le système permette à tout un chacun de créer ses propres statistiques. Il devrait être possible de définir les champs à afficher et de créer la requête pour avoir ce que l'on veut (ça va pas aller jusqu'au Datawarehouse, je n'ai de loin pas cette prétention). Ceci permettra d'avoir un moteur de statistiques et il faudra créer les "scripts" pour ce que l'on veut (le but étant que l'on puisse ensuite partager ces scripts).
Le problème c'est que les deux contributions installées donnent déjà des résultats différents entre elles...bien entendu mes résultats sont différents des deux autres.
Je suis dans la moyenne en connaissances MySQL mais je connais pas encore tous les méandres de OsCommerce. Je vous demanderai donc de l'aide pour réaliser une partie des requêtes afin d'être certain d'être sur le bon chemin. Pour l'instant il s'agit d'un affichage plus que basique, le but étant d'avoir déjà quelques chose de "fonctionnel". On fera beau après.
Voici le code pour la première stat (Total des ventes par marque):
$tot_sale_query_raw_brand = "select sum(op.final_price) as total, m.manufacturers_name as brand from " .
TABLE_ORDERS_PRODUCTS . " op, " . TABLE_PRODUCTS . " p, ". TABLE_MANUFACTURERS . " m
where op.products_id = p.products_id
and p.manufacturers_id = m.manufacturers_id";
$tot_sale_query_raw_brand .= ' group by p.manufacturers_id order by total desc';
echo '<br /><strong>Total by Brand</strong>';
echo '<table>';
$tot_sale_query_brand = tep_db_query($tot_sale_query_raw_brand);
$total = 0;
while($tot_sale_brand = tep_db_fetch_array($tot_sale_query_brand)){
echo '<tr><td>'.$tot_sale_brand['brand'].'</td><td>'.$currencies->format($tot_sale_brand['total']).'</td></tr>';
$total += $tot_sale_brand['total'];
}
echo '</table>';
echo '<h2>'.$currencies->format($total).'</h2>';
J'ai aussi créé le total des ventes par catégorie:
$tot_sale_query_raw_brand = "select sum(op.final_price) as total, cd.categories_name as categoryname from " .
TABLE_ORDERS_PRODUCTS . " op, " . TABLE_PRODUCTS . " p, ". TABLE_PRODUCTS_TO_CATEGORIES ." pc, ". TABLE_CATEGORIES_DESCRIPTION . " cd
where op.products_id = p.products_id
and p.products_id = pc.products_id
and pc.categories_id = cd.categories_id
and language_id = 4";
^ $tot_sale_query_raw_brand .= ' group by cd.categories_id order by total desc';
//echo $tot_sale_query_raw_brand;
echo '<br /><strong>Total par Catégorie</strong>';
echo '<table>';
$tot_sale_query_brand = tep_db_query($tot_sale_query_raw_brand);
$total = 0;
while($tot_sale_brand = tep_db_fetch_array($tot_sale_query_brand)){
echo '<tr><td NOWRAP>'.$tot_sale_brand['categoryname'].'</td><td>'.$currencies->format($tot_sale_brand['total']).'</td></tr>';
$total += $tot_sale_brand['total'];
}
echo '</table>';
echo '<h2>'.$currencies->format($total).'</h2>';
Hors là aussi entre les deux, j'ai des totaux complètement différents alors qu'ils devraient être identiques.
Voilà, je fais appel à vous pour que vous puissiez m'aider pour les requêtes et surtout me proposer de nouvelles requêtes et stats qui vous intéresseraient pour mieux voir ce qui se passe dans nos shops.
Prochaines étapes:
- Le total par pays (éventuellement segmenté par catégorie) ou continent
- L'évolution des ventes par semaines/mois/années
- L'évolution des ventes par semaines/mois/années par marque
- L'évolution des ventes par semaines/mois/années par catégorie
C'est ambitieux certes mais autant avoir des stats qui serviront à tous et qui soit modulaire.
PS: pour ceux qui aident, merci d'indiquer vos nom/prénom/pseudo afin que je puisse vous citer dans la contrib. Je pourrai peut-être pas mettre tout le monde s'il y a trop de gens, mais sait-on jamais...
Bonne soirée et merci de m'avoir lu.
