Jump to content

[Résolue] Tableau de bord vide a part le nombre de visites - Version 1.7.8.7


Recommended Posts

Bonjour a tous,

On vient de mettre notre site en production et avec les premières vente je constate que les ventes ne sont pas comptabilisés

les visiteurs semble ok mais par exemple les commandes sont comptabilisés dans la partie gauche mais pas dans le partie centrale ?

Informations du serveur : Linux #1 SMP PREEMPT Tue Aug 28 15:11:59 CEST 2018 x86_64

Version du logiciel serveur : Apache

Version de PHP : 7.4.25

Limite de mémoire : 512M

Temps maximal d'exécution : 180

Taille max. pour envoi de fichiers : 128M

image.thumb.png.7aab19251505bbe2b5ce535932e91c99.png

 

 

Si vous avez un idée ?

j'ai une autre site sur le même serveur qui a le meme problème ...

Merci d'avance de votre aide

Ronald

 

Edited by Ronald72
Résolue (see edit history)
Link to comment
Share on other sites

7 godzin temu, Ronald72 napisał:

Bonjour a tous,

On vient de mettre notre site en production et avec les premières vente je constate que les ventes ne sont pas comptabilisés

les visiteurs semble ok mais par exemple les commandes sont comptabilisés dans la partie gauche mais pas dans le partie centrale ?

Informations du serveur : Linux #1 SMP PREEMPT Tue Aug 28 15:11:59 CEST 2018 x86_64

Version du logiciel serveur : Apache

Version de PHP : 7.4.25

Limite de mémoire : 512M

Temps maximal d'exécution : 180

Taille max. pour envoi de fichiers : 128M

image.thumb.png.7aab19251505bbe2b5ce535932e91c99.png

 

 

Si vous avez un idée ?

j'ai une autre site sur le même serveur qui a le meme problème ...

Merci d'avance de votre aide

Ronald

 

Les factures sont activées ? Si ce n'est pas le cas, allumez-le.

Link to comment
Share on other sites

 

il y a 56 minutes, ComGrafPL a dit :

Les factures sont activées ? Si ce n'est pas le cas, allumez-le.

Merci pour votre réponse, non elle sont pas activé, parce que j'utilise les facture du gestion commercial (une facture par livraison, vu que j'ai des délai très long sur certaines pièce qui sont sur commande) qui sont mise a disposition avec une module spéciale pour ça,

une idée comment je peux active les factures sans que les factures de prestashop sont disponible au cients ?

Merci d'avance

Ronald

Link to comment
Share on other sites

4 minuty temu, Ronald72 napisał:

 

Merci pour votre réponse, non elle sont pas activé, parce que j'utilise les facture du gestion commercial (une facture par livraison, vu que j'ai des délai très long sur certaines pièce qui sont sur commande) qui sont mise a disposition avec une module spéciale pour ça,

une idée comment je peux active les factures sans que les factures de prestashop sont disponible au cients ?

Merci d'avance

Ronald

Ancienne méthode de remplacement, vous pouvez donc l'essayer.

 

Link to comment
Share on other sites

Pour ceux qui on le même problème que moi, c'est a dire sans utiliser la facturation de Prestashop, il suffit de ajouté ce code dans un fichier pour afficher les stats 

Crée le fichier AdminCustomersController.php avec le code ci dessous puis placer le fichier dans le repertoire /override/controllers/admin a l'aide Filezilla par exemple

si vous avez déjà activé la facturation puis désactivé il est probable que le fichier existe déjà, dans ce cas je vous conseille de le renommer avant de crée le nouveau fichier, si jamais ça ne fonctionne pas vous pouvez le récupérer

une fois placer le fichier vide le cache de Prestashop et normalement c'est ok :)

 

<?php
class AdminStatsController extends AdminStatsControllerCore
{
		public static function getTotalSales($date_from, $date_to, $granularity = false)
    {
        if ($granularity == 'day') {
            $sales = array();
            $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
			SELECT LEFT(`date_add`, 10) as date, SUM(total_paid_tax_excl / o.conversion_rate) as sales
			FROM `'._DB_PREFIX_.'orders` o
			LEFT JOIN `'._DB_PREFIX_.'order_state` os ON o.current_state = os.id_order_state
			WHERE `date_add` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59" AND os.logable = 1
			'.Shop::addSqlRestriction(false, 'o').'
			GROUP BY LEFT(`date_add`, 10)');
            foreach ($result as $row) {
                $sales[strtotime($row['date'])] = $row['sales'];
            }
            return $sales;
        } elseif ($granularity == 'month') {
            $sales = array();
            $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
			SELECT LEFT(`date_add`, 7) as date, SUM(total_paid_tax_excl / o.conversion_rate) as sales
			FROM `'._DB_PREFIX_.'orders` o
			LEFT JOIN `'._DB_PREFIX_.'order_state` os ON o.current_state = os.id_order_state
			WHERE `date_add` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59" AND os.logable = 1
			'.Shop::addSqlRestriction(false, 'o').'
			GROUP BY LEFT(`date_add`, 7)');
            foreach ($result as $row) {
                $sales[strtotime($row['date'].'-01')] = $row['sales'];
            }
            return $sales;
        } else {
            return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
			SELECT SUM(total_paid_tax_excl / o.conversion_rate)
			FROM `'._DB_PREFIX_.'orders` o
			LEFT JOIN `'._DB_PREFIX_.'order_state` os ON o.current_state = os.id_order_state
			WHERE `date_add` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59" AND os.logable = 1
			'.Shop::addSqlRestriction(false, 'o'));
        }
    }
    
    public static function getOrders($date_from, $date_to, $granularity = false)
    {
        if ($granularity == 'day') {
            $orders = array();
            $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
			SELECT LEFT(`date_add`, 10) as date, COUNT(*) as orders
			FROM `'._DB_PREFIX_.'orders` o
			LEFT JOIN `'._DB_PREFIX_.'order_state` os ON o.current_state = os.id_order_state
			WHERE `date_add` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59" AND os.logable = 1
			'.Shop::addSqlRestriction(false, 'o').'
			GROUP BY LEFT(`date_add`, 10)');
            foreach ($result as $row) {
                $orders[strtotime($row['date'])] = $row['orders'];
            }
            return $orders;
        } elseif ($granularity == 'month') {
            $orders = array();
            $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
			SELECT LEFT(`date_add`, 7) as date, COUNT(*) as orders
			FROM `'._DB_PREFIX_.'orders` o
			LEFT JOIN `'._DB_PREFIX_.'order_state` os ON o.current_state = os.id_order_state
			WHERE `date_add` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59" AND os.logable = 1
			'.Shop::addSqlRestriction(false, 'o').'
			GROUP BY LEFT(`date_add`, 7)');
            foreach ($result as $row) {
                $orders[strtotime($row['date'].'-01')] = $row['orders'];
            }
            return $orders;
        } else {
            $orders = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
			SELECT COUNT(*) as orders
			FROM `'._DB_PREFIX_.'orders` o
			LEFT JOIN `'._DB_PREFIX_.'order_state` os ON o.current_state = os.id_order_state
			WHERE `date_add` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59" AND os.logable = 1
			'.Shop::addSqlRestriction(false, 'o'));
        }

        return $orders;
    }
    
    public static function getPurchases($date_from, $date_to, $granularity = false)
    {
        if ($granularity == 'day') {
            $purchases = array();
            $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
			SELECT
				LEFT(`date_add`, 10) as date,
				SUM(od.`product_quantity` * IF(
					od.`purchase_supplier_price` > 0,
					od.`purchase_supplier_price` / `conversion_rate`,
					od.`original_product_price` * '.(int)Configuration::get('CONF_AVERAGE_PRODUCT_MARGIN').' / 100
				)) as total_purchase_price
			FROM `'._DB_PREFIX_.'orders` o
			LEFT JOIN `'._DB_PREFIX_.'order_detail` od ON o.id_order = od.id_order
			LEFT JOIN `'._DB_PREFIX_.'order_state` os ON o.current_state = os.id_order_state
			WHERE `date_add` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59" AND os.logable = 1
			'.Shop::addSqlRestriction(false, 'o').'
			GROUP BY LEFT(`date_add`, 10)');
            foreach ($result as $row) {
                $purchases[strtotime($row['date'])] = $row['total_purchase_price'];
            }
            return $purchases;
        } else {
            return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
			SELECT SUM(od.`product_quantity` * IF(
				od.`purchase_supplier_price` > 0,
				od.`purchase_supplier_price` / `conversion_rate`,
				od.`original_product_price` * '.(int)Configuration::get('CONF_AVERAGE_PRODUCT_MARGIN').' / 100
			)) as total_purchase_price
			FROM `'._DB_PREFIX_.'orders` o
			LEFT JOIN `'._DB_PREFIX_.'order_detail` od ON o.id_order = od.id_order
			LEFT JOIN `'._DB_PREFIX_.'order_state` os ON o.current_state = os.id_order_state
			WHERE `date_add` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59" AND os.logable = 1
			'.Shop::addSqlRestriction(false, 'o'));
        }
    }

    public static function getExpenses($date_from, $date_to, $granularity = false)
    {
        $expenses = ($granularity == 'day' ? array() : 0);

        $orders = Db::getInstance()->ExecuteS('
		SELECT
			LEFT(`date_add`, 10) as date,
			total_paid_tax_incl / o.conversion_rate as total_paid_tax_incl,
			total_shipping_tax_excl / o.conversion_rate as total_shipping_tax_excl,
			o.module,
			a.id_country,
			o.id_currency,
			c.id_reference as carrier_reference
		FROM `'._DB_PREFIX_.'orders` o
		LEFT JOIN `'._DB_PREFIX_.'address` a ON o.id_address_delivery = a.id_address
		LEFT JOIN `'._DB_PREFIX_.'carrier` c ON o.id_carrier = c.id_carrier
		LEFT JOIN `'._DB_PREFIX_.'order_state` os ON o.current_state = os.id_order_state
		WHERE `date_add` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59" AND os.logable = 1
		'.Shop::addSqlRestriction(false, 'o'));
        foreach ($orders as $order) {
            // Add flat fees for this order
            $flat_fees = Configuration::get('CONF_ORDER_FIXED') + (
                $order['id_currency'] == Configuration::get('PS_CURRENCY_DEFAULT')
                    ? Configuration::get('CONF_'.strtoupper($order['module']).'_FIXED')
                    : Configuration::get('CONF_'.strtoupper($order['module']).'_FIXED_FOREIGN')
                );

            // Add variable fees for this order
            $var_fees = $order['total_paid_tax_incl'] * (
                $order['id_currency'] == Configuration::get('PS_CURRENCY_DEFAULT')
                    ? Configuration::get('CONF_'.strtoupper($order['module']).'_VAR')
                    : Configuration::get('CONF_'.strtoupper($order['module']).'_VAR_FOREIGN')
                ) / 100;

            // Add shipping fees for this order
            $shipping_fees = $order['total_shipping_tax_excl'] * (
                $order['id_country'] == Configuration::get('PS_COUNTRY_DEFAULT')
                    ? Configuration::get('CONF_'.strtoupper($order['carrier_reference']).'_SHIP')
                    : Configuration::get('CONF_'.strtoupper($order['carrier_reference']).'_SHIP_OVERSEAS')
                ) / 100;

            // Tally up these fees
            if ($granularity == 'day') {
                if (!isset($expenses[strtotime($order['date'])])) {
                    $expenses[strtotime($order['date'])] = 0;
                }
                $expenses[strtotime($order['date'])] += $flat_fees + $var_fees + $shipping_fees;
            } else {
                $expenses += $flat_fees + $var_fees + $shipping_fees;
            }
        }
        return $expenses;
    }
}

Bonne stats a vous,

Ronald

Link to comment
Share on other sites

  • Ronald72 changed the title to [Résolue] Tableau de bord vide a part le nombre de visites - Version 1.7.8.7

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...