Soucis ps_checkout (admin et front)



  • Bonjour,
    suite à la mise à jour avec l'autougrade, j'avais perdu toutes les commandes en admin.
    En activant le debug, cela m'a remonté une erreur sur une requete qui commence comme ceci :
    Not unique table/alias: 'oc'

                    SELECT SQL_CALC_FOUND_ROWS
                    a.`id_order`, `reference`, `total_paid_tax_incl`, a.`payment` AS `payment`, a.`date_add` AS `date_add`, `tracking_number`
    

    A priori il y aurai un doublon de LEFT JOIN sur la table order_carrier.

    J'ai donc supprimé le 1er LEFT_JOIN dans le fichier AdminOrdersController.php (ligne 121)

    Et j'ai vu que le module PrestaShop Checkout dans les extensions avait besoin d'une mise à jour (version actuelle : 6.3.5.3)
    Sur la version de test du meme site, dans les memes conditions, je n'ai pas cette demande de mise à jour. Et je n'ai pas rencontré ce soucis non plus.

    je remets la requete complète ci-dessous.

    merci d'avance

    Not unique table/alias: 'oc'

                    SELECT SQL_CALC_FOUND_ROWS
                    a.`id_order`, `reference`, `total_paid_tax_incl`, a.`payment` AS `payment`, a.`date_add` AS `date_add`, `tracking_number`
            , 
            a.`id_currency`, a.`id_carrier`,
            a.`id_order` AS `id_pdf`, CONCAT(a.`id_customer`, '-', a.`id_order`) AS `id_message`,
            SUM(od.`product_customization_id`) as `custom`,
            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 `bl_orders` so
                WHERE so.`id_customer` = a.`id_customer`
                AND so.`id_order` < a.`id_order` LIMIT 1
                ) > 0, 0, 1
            ) AS `new`,
            country_lang.`name` AS `cname`,
            IF(a.`valid`, 1, 0) `badge_success`
            FROM `bl_orders` a 
            
            
            STRAIGHT_JOIN `bl_customer` c 
                ON(c.`id_customer` = a.`id_customer`)
            STRAIGHT_JOIN `bl_shop` s
                ON(s.`id_shop` = a.`id_shop`)
            STRAIGHT_JOIN `bl_address` address
                ON(address.`id_address` = a.`id_address_delivery`)
            LEFT JOIN `bl_order_carrier` oc 
                ON(oc.`id_order` = a.`id_order`)
            LEFT JOIN `bl_carrier` carrier
                ON(carrier.`id_carrier` = a.`id_carrier`)
            LEFT JOIN `bl_country` country
                ON(country.`id_country` = address.`id_country`)
            LEFT JOIN `bl_country_lang` country_lang
                ON(country_lang.`id_country` = country.`id_country`
                AND country_lang.`id_lang` = 1)
            LEFT JOIN `bl_order_state` os
                ON(os.`id_order_state` = a.`current_state`)
            LEFT JOIN `bl_order_payment` op
                ON(op.`order_reference` = a.`reference`)
            LEFT JOIN `bl_order_state_lang` osl
                ON(osl.`id_order_state` = os.`id_order_state`
                AND osl.`id_lang` = 1)
            LEFT OUTER JOIN `bl_order_detail` od
                ON(od.`id_order` = a.`id_order`)
                    LEFT JOIN `bl_order_carrier` oc ON (a.`id_order` = oc.`id_order`) 
             
                    WHERE 1  
                AND a.`archived` = 0 
            GROUP BY a.`id_order` 
             ORDER BY a.`id_order` DESC  LIMIT 0, 20


  • Ce qui voudrait dire que ps_checkout modifie la requête ? Car cette ligne supplémentaire n'existe pas dans PhenixSuite.

    LEFT JOIN `bl_order_carrier` oc ON (a.`id_order` = oc.`id_order`) 
    

    Je n'ai pas ce souci avec la version 6.3.5.2 du module ps_checkout.



  • Bizarre, je viens de mettre à jour le module ps_checkout et je n'ai pas cet ajout.
    Vous n'auriez pas un override de adminOrderController.php par hasard ?



  • ok, je vais regarder pourquoi j'ai ce soucis sur une version du site et pas l'autre.
    Je vais vérifier s'il y a des différences au niveau des modules installés et activés.

    On est d'accord que le module ps_checkout est signé prestashop, et pas eolia ?



  • il est signé Prestashop (mais 202ecommerce en réalité) et pas Eolia



  • ok. Je vais essayer de trouver si je trouve effectivement un override quelquepart

    Sinon au pire, le fait d'avoir enlevé cette ligne, ne poserait pas de probleme de fonctionnement ?



  • Cette ligne permet d'afficher la colonne "transporteur" si vous avez fait ce choix dans la configuration des colonnes.
    Mais il serait préférable de trouver quel module ou fichier ajoute cette ligne.



  • ok, je regarde demain matin, je reviendrai poster ici si je galère trop ;-)



  • Juste pour info, la dernière version de ps_checkout, ils rajoutent la pub Paypal dans toutes les fiches produits.
    Si vous n'en voulez pas ajoutez cette règle css:

    #ps_checkout-payment-method-logo-block-container {
        display:none;
        visibility:hidden;
        height:0;
    }
    

Se connecter pour répondre