Alors en fait, ça ne suffira pas d'inclure les remboursements partiels, car il manque plein de chose dans les différents calculs fait par les modules de stats par défaut de PrestaShop (dont le tableau de bord fait partie).
Je ne les ai pas tous en tête, mais :
il va te manquer les remboursements partiels.
Il ne prend pas en compte le taux de change (si tu as plusieurs devises).
Si tu fais un code de réduction qui offre les FP il va être pris en compte comme réduction même si les FP ne sont pas inclu dans le CA.
Je ne sais pas s'il gère correctement le multiboutique.
....
Bref, c'est très simplifié leur méthode de calcul et donc très inexacte.
Je prêche un peu pour ma paroisse, mais avoir de bonnes statistiques est essentiel pour un ecommerce.
Je n'en avais pas conscience avant de vraiment vouloir faire grossir ma propre boutique et maintenant que j'ai créé mon module et que j'ai des feedbacks/sav de plein de commerçants, je me rends compte que les stats sont ultra-utilisé par les commerçants qui font du chiffre, ça drive vraiment leurs décisions (et donc leur croissance).
Pour illustrer la complexité d'avoir de bonnes stats, voici une requête SQL "simple" pour récupérer un CA correcte avec pour seule condition une plage de dates.
SELECT
SUM(total) AS 'totalCA'
FROM
(
SELECT
orders.id_order,
(
(
(
orders.total_paid_tax_excl - IF(
order_cart_rule.value_tax_excl IS NULL,
orders.total_shipping_tax_excl,
0
)
) - SUM(
IFNULL(
order_detail.total_refunded_tax_excl,
0
)
)
) / orders.conversion_rate
) AS 'total'
FROM
ps_orders orders
INNER JOIN ps_order_detail order_detail ON
orders.id_order = order_detail.id_order
LEFT JOIN ps_order_cart_rule order_cart_rule ON
orders.id_order = order_cart_rule.id_order AND order_cart_rule.free_shipping = 1
WHERE
(
orders.`id_shop` = 2 OR orders.`id_shop` = 1 OR orders.`id_shop` = 3
) AND(
orders.`current_state` = '9' OR orders.`current_state` = '3' OR orders.`current_state` = '4' OR orders.`current_state` = '5' OR orders.`current_state` = '11' OR orders.`current_state` = '2'
) AND orders.`invoice_date` >= '2024-03-06 00:00:00' AND orders.`invoice_date` <= '2024-04-04 23:59:59'
GROUP BY
orders.id_order,
order_cart_rule.id_order_cart_rule
) AS t
Tu peux tester de l'utiliser dans l'outil SQL de PrestaShop, je ne sais pas s'il l'acceptera.
Il faudra que tu modifies les dates dans la requête pour avoir la période que tu souhaites.