Jump to content

1.6 Modifier L'ordre De Tri Des Produits Sur Les détails des commande


Recommended Posts

Bonjour,

 

Je suis sur prestashop 1.6 et j'aimerai pourvoir changer l'ordre de trie des produits dans les détails des commande pour pouvoir afficher les produits par ordre alphabétique. J'ai tenté de faire des modification sur le fichier pdf/order-slip.product-tab.tpl en suivant ce topic sans succès j'ai aussi tenter de changer de modifier la requête de la variable  $order_products dans la fonction getCrossSells dans le fichier classes/order/orderDetail.php en changeant la clé de trie, "ORDER BY", en précisant le nom des produit dans la table product_lang, toujours sans succès apparent.

 

quelqu'un aurait-il une idée pour m'aider s'il vous plaît ?

Link to comment
Share on other sites

Salut,

 

Détail des commandes en BO ou dans les mails client ?

 

En BO tu peux remplacer la fonction getProductDetail de la classe Order par 

    public function getProductsDetail()
    {
        return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
        SELECT *
        FROM `'._DB_PREFIX_.'order_detail` od
        LEFT JOIN `'._DB_PREFIX_.'product` p ON (p.id_product = od.product_id)
        LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.id_product = pl.id_product AND pl.id_lang = '.(int)$this->id_lang.')
        LEFT JOIN `'._DB_PREFIX_.'product_shop` ps ON (ps.id_product = p.id_product AND ps.id_shop = od.id_shop)
        WHERE od.`id_order` = '.(int)$this->id.' ORDER BY pl.name');
    }

ça marche peut-être aussi dans les mails mais j'ai pas testé. :)

 

Bonne journée,

Link to comment
Share on other sites

  • 2 years later...

Bonjour,


Je déterre ce topic car je cherche à faire sensiblement la même chose en 1.7.5.2 sauf que j'aimerais soit trier par Référence ou par Emplacement.

En testant avec 

WHERE od.`id_order` = ' . (int) $this->id. ' ORDER BY od.`location` ASC' );

Le liste de produit ne s'affiche plus, idem lorsque je teste avec le code proposé par Matt au dessus :

WHERE od.`id_order` = '.(int)$this->id.' ORDER BY pl.name');

Si je remplace od.`location` par, par exemple, od.`product_quantity` pour trier par quantité commandée, la liste s'affiche mais n'est pas triée.

Bref, je pense touchais au but mais il semble que mon paramètre de tri ne soit pas correct.

Quelqu'un aurait-il une idée ?

 

Bonne journée

Link to comment
Share on other sites

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...