Visualisez les ventes des produits

Store Commander propose différentes solutions pour visualiser les ventes sur vos produits, que nous allons évoquer dans cet article.

En effet, il est possible de voir les ventes sur vos produits dans l’interface Catalogue de votre Sc, que ce soit avec les options natives, ou en ajoutant les informations que vous souhaitez grâce à l’outil de personnalisation de l’interface Pro.

Les graphiques visuels

La colonne des Propriétés de Sc affiche une grille intitulée Stats, et qui affichera les statistiques de ventes d’un produit sélectionné, voire sur toute une gamme de produits :

3 options sont disponibles dans le menu déroulant pour afficher les statistiques que vous souhaitez :

Cette même grille existe dans la grille Déclinaisons :

Mais aussi dans la grille Déclinaisons Multi Produits pour visualiser les statistiques des déclinaisons de plusieurs produits :

Les statistiques de ventes produits personnalisées

Vous avez la possibilité d’afficher dans votre interface Sc des statistiques de ventes par produit, en intégrant des nouvelles colonnes qui indiqueront le nombre de ventes sur chacun de vos produits.

Par exemple, dans la capture ci-dessous, nous avons ajouté une colonne pour indiquer les nombre de ventes sur toute l’année 2025.
Mais vous avez la possibilité de choisir les périodes : un mois glissant, de janvier à avril, etc, et d’ajouter autant de colonnes de statistiques que vous souhaitez dans votre Sc !

Ces champs personnalisés peuvent être ajoutés grâce à l’outil de personnalisation de l’interface Pro, accessible depuis le menu Outils de votre interface Store Commander, et via le + de la barre d’outils de la liste des champs déjà disponibles :

Assurez-vous ensuite de bien choisir la grille dans laquelle vous voulez ajouter votre champ, en l’occurrence ici la Grille des Produits.

Cette version PRO de l’outil de personnalisation est disponible dans les plans Solo PLUS et

MultiStore PLUS.

📊 Nous allons maintenant vous donner quelques exemples concrets de statistiques de ventes produits que vous allez pouvoir intégrer à votre interface Sc.

Nombre de commandes sur les produits sur 1 mois

Ajoutez le nouveau champ dans la Grille des produits et indiquez son ID :
nb_order_with_this_product_1_month

La ligne du champ est créée dans la liste. Il faut maintenant renseigner les informations :

Table

Another table

Nom

Nombre Commandes depuis 1 mois

Type

Juste affiché

Rafraîchir les déclinaisons

Non

Il faut ensuite ajouter les éléments de configuration techniques, dans les propriétés spécifiques, dans le panneau de droite :

Sélectionner le menu SQL Select et renseignez :

return ',COALESCE((SELECT count(DISTINCT o.id_order) AS nb_order_with_this_product_1_month
	FROM `'._DB_PREFIX_'order_detail` od
	INNER JOIN `'._DB_PREFIX_.'orders` o ON (od.id_order = o.id_order)
	WHERE od.product_id = p.id_product
	AND o.valid=1
	AND o.current_state IN (4,5)
	AND o.date_add >= (SELECT DATE_ADD("'.date("Y-m-d").' 00:00:00", INTERVAL -1 MONTH))
	LIMIT 1),0) AS nb_order_with_this_product_1_month';

Dans cet exemple, nous prenons en compte les états de commandes dont les ID sont 4 et 5.
Adaptez en fonction de vos besoins.

Vous pouvez adapter la durée en modifiant le paramètre INTERVAL -1 MONTH par INTERVAL -3 MONTH si vous souhaitez une période de 3 mois glissants par exemple.

Enfin, enregistrez la configuration :


Vous pouvez maintenant fermer cette fenêtre.
De retour dans la fenêtre précédente, le nouveau champ se trouve dans la liste des champs disponibles (surligné en orange) et vous pouvez l’ajouter aux vues de votre choix.

Nombre de ventes par produit : depuis la date de création

Ajoutez le nouveau champ dans la Grille des produits et indiquez son ID :
nb_ventes

La ligne du champ est créée dans la liste. Il faut maintenant renseigner les informations :

Table

Another table

Nom

Nombre Ventes

Type

Juste affiché

Il faut ensuite ajouter les éléments de configuration techniques, dans les propriétés spécifiques, dans le panneau de droite :

Sélectionner le menu SQL Select et renseignez :

return ',COALESCE((SELECT SUM(od.product_quantity) AS nb
            FROM `'._DB_PREFIX_.'order_detail` od
            INNER JOIN `'._DB_PREFIX_.'orders` o ON (od.id_order = o.id_order)
            WHERE od.product_id = p.id_product
            AND o.valid=1
            AND o.current_state IN (4,5)
            LIMIT 1),0) AS nb_sale';

Dans cet exemple, nous considérons les états de commandes ID 4 et 5.
Adaptez en fonction de vos besoins.

Enfin, enregistrez la configuration :

Vous pouvez maintenant fermer cette fenêtre.
De retour dans la fenêtre précédente, le nouveau champ se trouve dans la liste des champs disponibles (surligné en orange) et vous pouvez l’ajouter aux vues de votre choix.

Nombre de ventes par produit : sur 30 jours glissants

Ajoutez le nouveau champ dans la Grille des produits et indiquez son ID :
nb_sale_1_month

La ligne du champ est créée dans la liste. Il faut maintenant renseigner les informations :

Table

Another table

Nom

Nombre Ventes depuis 1 mois

Type

Juste affiché

Rafraîchir les déclinaisons

Non

Il faut ensuite ajouter les éléments de configuration techniques, dans les propriétés spécifiques, dans le panneau de droite :

Dans le panneau des Propriétés Avancées à droite :

Sélectionnez le menu SQL Select et renseignez :

return ',COALESCE((SELECT SUM(od.product_quantity) AS nb
            FROM `'._DB_PREFIX_.'order_detail` od
            INNER JOIN `'._DB_PREFIX_.'orders` o ON (od.id_order = o.id_order)
            WHERE od.product_id = p.id_product
            AND o.valid=1
            AND o.current_state IN (4,5)
            AND o.date_add >= (SELECT DATE_ADD("'.date("Y-m-d").' 00:00:00", INTERVAL -1 MONTH))
            LIMIT 1),0) AS nb_sale_1_month';


Dans cet exemple, nous considérons les états de commandes ID 4 et 5.
Adaptez en fonction de vos besoins.

Vous pouvez adapter la durée en modifiant le paramètre INTERVAL -1 MONTH par INTERVAL -3 MONTH si vous souhaitez une période de 3 mois glissants par exemple.

Enfin, enregistrez la configuration :


Vous pouvez maintenant fermer cette fenêtre.
De retour dans la fenêtre précédente, le nouveau champ se trouve dans la liste des champs disponibles (surligné en orange) et vous pouvez l’ajouter aux vues de votre choix.

Nombre de ventes par produit : sur une période spécifique

Ajoutez le nouveau champ dans la Grille des produits et indiquez son ID :
nb_ventes_avril_2025

La ligne du champ est créée dans la liste. Il faut maintenant renseigner les informations :

Table

Another table

Nom

Nbre de ventes avril 2025

Type

Juste affiché

Il faut ensuite ajouter les éléments de configuration techniques, dans les propriétés spécifiques, dans le panneau de droite :

Dans le panneau des Propriétés Avancées à droite :

Sélectionner le menu SQL Select et renseignez :

return ',COALESCE((SELECT SUM(od.product_quantity) AS nb
            FROM `'._DB_PREFIX_.'order_detail` od
            INNER JOIN `'._DB_PREFIX_.'orders` o ON (od.id_order = o.id_order)
            WHERE od.product_id = p.id_product
            AND o.valid=1
            AND o.current_state IN (4,5)
            AND o.date_add BETWEEN "2025-04-01" AND "2025-04-30 23:59:59"
            LIMIT 1),0) AS nb_avril_2025';

Dans cet exemple, nous prenons en compte les états de commandes dont les ID sont 4 et 5.
Ainsi que la période du 01/04/2025 au 30/04/2025.
Adaptez en fonction de vos besoins.

Enfin, enregistrez la configuration :

Vous pouvez maintenant fermer cette fenêtre.
De retour dans la fenêtre précédente, le nouveau champ se trouve dans la liste des champs disponibles (surligné en orange) et vous pouvez l’ajouter aux vues de votre choix.

Obtenir le CA produit généré sur une période spécifique

Ajoutez le nouveau champ dans la Grille des produits et indiquez son ID :
ca_2024

La ligne du champ est créée dans la liste. Il faut maintenant renseigner les informations :

Table

Another table

Nom

CA 2024

Type

Juste affiché

Rafraîchir les déclinaisons

Non

Il faut ensuite ajouter les éléments de configuration techniques, dans les propriétés spécifiques, dans le panneau de droite :

Sélectionner le menu SQL Select et renseignez :

return ',COALESCE((SELECT sum(od.`total_price_tax_excl`'.(version_compare(_PS_VERSION_, '1.7.7.0', '>=') ? '-od.`total_refunded_tax_excl`' : '').') AS total
 FROM '._DB_PREFIX_.'orders o
 LEFT JOIN '._DB_PREFIX_.'order_detail od ON (o.id_order = od.id_order)
 WHERE o.valid = 1
 AND od.product_id = p.id_product
 AND o.id_shop = prs.id_shop 
 AND od.id_shop = prs.id_shop
 AND o.date_add BETWEEN "2024-01-01" AND "2024-12-31 23:59:59"
 LIMIT 1),0) AS ca_2024';

Enfin, enregistrez la configuration :

Vous pouvez maintenant fermer cette fenêtre.
De retour dans la fenêtre précédente, le nouveau champ se trouve dans la liste des champs disponibles (surligné en orange) et vous pouvez l’ajouter aux vues de votre choix.

Exporter les ventes produits sur un fichier csv

Vosu pouvez également ajouter des champs personnalisés à l’outil d’export csv de Store Commander, ce qui vous permet d’obtenir un listing des ventes de vos produits sur la période de votre choix.

Ici encore, vous pouvez ajouter pluisieurs champs pour des périodes différentes, il suffit d’ajouter les champs correspondants avec leur configuration de dates spécifiques.

Nous prendre l’exemple de la période 2025-01-01 au 2025-04-30.

Dans la liste de droite, sélectionnez Catalogue : Export produits :

Puis ajoutez le nouveau champ et indiquez son ID :
nb_ventes

La ligne du champ est créée dans la liste - vous pouvez modifier son nom si vous le souhaitez.

Il faut ensuite ajouter les éléments de configuration techniques, dans les propriétés spécifiques, dans le panneau de droite :

Sélectionner le menu Processus d’export et renseignez :

if (in_array($switchObject, ['nb_ventes']))
{
    $sql = 'SELECT COALESCE(SUM(od.product_quantity),0) AS nb_ventes
            FROM `'._DB_PREFIX_.'order_detail` od
            RIGHT JOIN `'._DB_PREFIX_.'orders` o ON (od.id_order = o.id_order)
            WHERE od.product_id = '.(int) $p->id.' 
            AND o.valid = 1 
            AND o.date_add BETWEEN "2021-01-01" AND "2021-04-30 23:59:59"';
    $field = (int) Db::getInstance()->getValue($sql);
}

Vous pouvez maintenant fermer cette fenêtre.
Et vous retrouverez ce champ nb_ventes dans la liste des champs de mapping d’export.