Passage de la 16.1.9 a la PhenixSuite 1.6.2.36



  • Bonsoir,
    Suite au passage de mon Prestashop 1.6.1.9 au formidable PhenixSuite 1.6.2.36
    J'ai un seul problème, mais MAJEUR, je n'ai plus une seule commandes affichées dans le Back Office.
    Tout le reste fonctionne, je crée un compte, je valide des commandes, mais rien n'apparait dans le BO suite a ce colum tracking_number inconnu de PhenixSuite a priori..

    Avec le debug :

    [ SQL ERROR ]
    Column 'tracking_number' in SELECT is ambiguous
    
                        SELECT SQL_CALC_FOUND_ROWS
                        a.`id_order`,
                            `reference`, 
                            `total_paid_tax_incl`, 
                            a.`module` AS `payment`, 
                            a.`date_add` AS `date_add`, 
                            `tracking_number`, 
                a.`id_currency`, a.`id_carrier`, a.`id_order` AS `total_products_wt`,
                a.`id_order` AS `id_pdf`, CONCAT(a.`id_customer`, '-', a.`id_order`) AS `id_message`,
                SUM(od.`product_customization_id`) as `custom`,
                CONCAT("
    
        ", GROUP_CONCAT(od.`product_name` SEPARATOR "
        "), "
    
    ") as products,
                CONCAT(c.`firstname`, ' ', c.`lastname`) AS `customer`,
                 c.`id_default_group`, 
                osl.`name` AS `osname`,
                carrier.`name` AS `caname`,
                os.`color`,
                IF((SELECT so.`id_order`
                    FROM `ps_orders` so
                    WHERE so.`id_customer` = a.`id_customer`
                    AND so.`id_order` < a.`id_order` 
                    LIMIT 1
                    ) IS NOT NULL, 0, 1
                ) AS `new`,
                country_lang.`name` AS `cname`,
                IF(a.`id_employee`, 1, 0) as bo_order,
                IF(a.`valid`, 1, 0) `badge_success`
                FROM `ps_orders` a 
                
                
                STRAIGHT_JOIN `ps_shop` s
                    ON(s.`id_shop` = a.`id_shop`)
                STRAIGHT_JOIN `ps_customer` c 
                    ON(c.`id_customer` = a.`id_customer`)
                LEFT JOIN `ps_address` address
                    ON(address.`id_address` = a.`id_address_delivery`)
                LEFT JOIN `ps_order_carrier` oct 
                    ON(oct.`id_order` = a.`id_order`)
                LEFT JOIN `ps_carrier` carrier
                    ON(carrier.`id_carrier` = a.`id_carrier`)
                LEFT JOIN `ps_country` country
                    ON(country.`id_country` = address.`id_country`)
                LEFT JOIN `ps_country_lang` country_lang
                    ON(country_lang.`id_country` = country.`id_country`
                    AND country_lang.`id_lang` = 1)
                LEFT JOIN `ps_order_state` os
                    ON(os.`id_order_state` = a.`current_state`)
                LEFT JOIN `ps_order_state_lang` osl
                    ON(osl.`id_order_state` = os.`id_order_state`
                    AND osl.`id_lang` = 1)
                LEFT OUTER JOIN `ps_order_detail` od
                    ON(od.`id_order` = a.`id_order`)
                        LEFT JOIN `ps_order_carrier` oc ON (a.`id_order` = oc.`id_order`) 
                 
                        WHERE 1  
                GROUP BY a.`id_order` 
                 ORDER BY a.`id_order` DESC, a.`id_order` DESC LIMIT 50
    
        DbCore->displayError in /classes/db/Db.php:481
        DbCore->query in /classes/db/Db.php:706
        DbCore->executeS in /classes/controller/AdminController.php:4138
        AdminControllerCore->getList in /classes/controller/AdminController.php:3018
        AdminControllerCore->renderList in /controllers/admin/AdminOrdersController.php:1164
        AdminOrdersControllerCore->renderList in /classes/controller/AdminController.php:2717
        AdminControllerCore->initContent in /classes/controller/Controller.php:338
        ControllerCore->run in /classes/Dispatcher.php:427
        DispatcherCore->dispatch in /admin4032/index.php:81 
    

    Je ne me souviens plus du tout si j'ai fais une modif il y a plusieurs années pour afficher le tracking_number dans la liste des Commande du Back Office.
    Merci de bien vouloir me venir en aide, car sans pouvoir afficher les commandes dans le Back Office, je suis coincé la et hors service..
    Bonne fin de soirée ou bonne journée. Cdt, Eric.



  • @ericd86 a dit dans Passage de la 16.1.9 a la PhenixSuite 1.6.2.36 :

    Bonsoir,
    Suite au passage de mon Prestashop 1.6.1.9 au formidable PhenixSuite 1.6.2.36
    J'ai un seul problème, mais MAJEUR, je n'ai plus une seule commandes affichées dans le Back Office.
    Tout le reste fonctionne, je crée un compte, je valide des commandes, mais rien n'apparait dans le BO suite a ce colum tracking_number inconnu de PhenixSuite a priori..

    Avec le debug :

    [ SQL ERROR ]
    Column 'tracking_number' in SELECT is ambiguous
    
                        SELECT SQL_CALC_FOUND_ROWS
                        a.`id_order`,
                            `reference`, 
                            `total_paid_tax_incl`, 
                            a.`module` AS `payment`, 
                            a.`date_add` AS `date_add`, 
                            `tracking_number`, 
                a.`id_currency`, a.`id_carrier`, a.`id_order` AS `total_products_wt`,
                a.`id_order` AS `id_pdf`, CONCAT(a.`id_customer`, '-', a.`id_order`) AS `id_message`,
                SUM(od.`product_customization_id`) as `custom`,
                CONCAT("
    
        ", GROUP_CONCAT(od.`product_name` SEPARATOR "
        "), "
    
    ") as products,
                CONCAT(c.`firstname`, ' ', c.`lastname`) AS `customer`,
                 c.`id_default_group`, 
                osl.`name` AS `osname`,
                carrier.`name` AS `caname`,
                os.`color`,
                IF((SELECT so.`id_order`
                    FROM `ps_orders` so
                    WHERE so.`id_customer` = a.`id_customer`
                    AND so.`id_order` < a.`id_order` 
                    LIMIT 1
                    ) IS NOT NULL, 0, 1
                ) AS `new`,
                country_lang.`name` AS `cname`,
                IF(a.`id_employee`, 1, 0) as bo_order,
                IF(a.`valid`, 1, 0) `badge_success`
                FROM `ps_orders` a 
                
                
                STRAIGHT_JOIN `ps_shop` s
                    ON(s.`id_shop` = a.`id_shop`)
                STRAIGHT_JOIN `ps_customer` c 
                    ON(c.`id_customer` = a.`id_customer`)
                LEFT JOIN `ps_address` address
                    ON(address.`id_address` = a.`id_address_delivery`)
                LEFT JOIN `ps_order_carrier` oct 
                    ON(oct.`id_order` = a.`id_order`)
                LEFT JOIN `ps_carrier` carrier
                    ON(carrier.`id_carrier` = a.`id_carrier`)
                LEFT JOIN `ps_country` country
                    ON(country.`id_country` = address.`id_country`)
                LEFT JOIN `ps_country_lang` country_lang
                    ON(country_lang.`id_country` = country.`id_country`
                    AND country_lang.`id_lang` = 1)
                LEFT JOIN `ps_order_state` os
                    ON(os.`id_order_state` = a.`current_state`)
                LEFT JOIN `ps_order_state_lang` osl
                    ON(osl.`id_order_state` = os.`id_order_state`
                    AND osl.`id_lang` = 1)
                LEFT OUTER JOIN `ps_order_detail` od
                    ON(od.`id_order` = a.`id_order`)
                        LEFT JOIN `ps_order_carrier` oc ON (a.`id_order` = oc.`id_order`) 
                 
                        WHERE 1  
                GROUP BY a.`id_order` 
                 ORDER BY a.`id_order` DESC, a.`id_order` DESC LIMIT 50
    
        DbCore->displayError in /classes/db/Db.php:481
        DbCore->query in /classes/db/Db.php:706
        DbCore->executeS in /classes/controller/AdminController.php:4138
        AdminControllerCore->getList in /classes/controller/AdminController.php:3018
        AdminControllerCore->renderList in /controllers/admin/AdminOrdersController.php:1164
        AdminOrdersControllerCore->renderList in /classes/controller/AdminController.php:2717
        AdminControllerCore->initContent in /classes/controller/Controller.php:338
        ControllerCore->run in /classes/Dispatcher.php:427
        DispatcherCore->dispatch in /admin4032/index.php:81 
    

    Je ne me souviens plus du tout si j'ai fais une modif il y a plusieurs années pour afficher le tracking_number dans la liste des Commande du Back Office.
    Merci de bien vouloir me venir en aide, car sans pouvoir afficher les commandes dans le Back Office, je suis coincé la et hors service..
    Bonne fin de soirée ou bonne journée. Cdt, Eric.

    up
    Une idée ? Des pistes a me donner pour que je trouve ou se fait la construction de cette requête afin que je la modifie ? et que je retire ce champ tracking_number ? A vous lire... Eric.



  • Bonjour, comme je ne vois pas d'override dans la liste des fichiers appelés dans le debug je pense que vous avez un module qui modifie le getList avec un hook
    actionAdminOrdersListingFieldsModifier / actionOrderGridQueryBuilderModifier / actionOrderGridDefinitionModifier

    Recherchez ces hooks dans Modules => Positions et cochez "Afficher les points d'accroche invisibles"



  • et le tracking_number n'est pas inconnu mais existe dans plusieurs tables et comme il n'a pas d'alias dans votre requête SQL ne sait pas lequel ramener

    Regardez la requête, Phenix charge la table carrier avec l'alias oct.:
    LEFT JOIN ps_order_carrier oct
    ON(oct.id_order = a.id_order)

    et en bas de la requête une jointure est rajoutée avec l'alias oc.:
    LEFT JOIN ps_order_carrier oc ON (a.id_order = oc.id_order)

    Donc oui c'est un des modules de transport qui vous modifie le listing, décrochez-le de ces hooks vu que Phenix propose nativement d'afficher la colonne du n° de suivi



  • Merci Eolia pour ces bonnes pistes. Je regarde cela dans le détail dès demain. Bonne soirée. Eric.



  • @eolia a dit dans Passage de la 16.1.9 a la PhenixSuite 1.6.2.36 :

    actionAdminOrdersListingFieldsModifier

    Oui c’était bien le MODULE de transport :
    Colissimo - Officiel : Gérer vos expéditions avec Colissimo. v16 - par Colissimo - Phenix Edition
    Dans la section CONFIGURER du Module, la sous-section : Paramètres des statuts et commandes :
    Afficher le numéro de suivi sur la page de commande : OUI
    le fait de passer le drapeau à la valeur : NON et tout fonctionne...

    Possible d'avoir cependant l'affichage du Numéro de Suivi sur la page liste des commandes ?
    C'etait bien pratique sans ouvrir la commande, d'avoir le numéro en liste des commandes...
    Merci Eolia d'avoir mis le point sur ce qui faisait BUGGUE l'affichage des commandes en liste.
    Bonne soirée, Eric.



  • Oui, si vous avez pris le temps de lire le changelog au moins une fois: les colonnes sont paramétrables dans les listes pour de nombreuses pages (commandes, catalogue, clients etc...)
    Cliquez sur la roue crantée en haut à droite.
    columns.gif


Se connecter pour répondre