Jump to content

[Résolu]tri liste produit selon quantité


Recommended Posts

bonjour
dans une catégorie, je voudrais changer l'ordre de tri par défaut au lieu de tri par 'position' je veux trier la liste par quantité du stock c a d les produits en stock en premier et les stocks épuisés en bas du liste.
j'ai fait des manipulation dans le fichier /thèmes/mon_thème/product-sort.tpl mais sans réussite.
version 1.2.5
merci d'avance

Link to comment
Share on other sites

Bonjour,

Pour modifier les préférences produit c'est un peu plus compliqué.

Sinon Vous pouvez modifier le fichier classes\Category.php
après en avoir fait une sauvegarde.

avant la ligne 410 : if ($random === true)

ajouter :

$random = FALSE;
$orderByPrefix = 'p';
$orderBy = 'quantity';
$orderWay = 'DESC'; // ou ASC



Je n'ai pas testé faute de temps,

Link to comment
Share on other sites

merci pour l'aide reinette
sur ma version 1.2.5 j'ai ça :

if ($random === true)
       {
           $sql .= 'ORDER BY RAND()';
           $sql .= 'LIMIT 0, '.intval($randomNumberProducts);
       }
       else
       {
           $sql .= 'ORDER BY '.(isset($orderByPrefix) ? $orderByPrefix.'.' : '').'`'.pSQL($orderBy).'` '.pSQL($orderWay).'
           LIMIT '.((intval($p) - 1) * intval($n)).','.intval($n);
       }


alors j'ai ajouté les 4 lignes avant mais après ou je peut l'utiliser pour trier la liste des produits?

Link to comment
Share on other sites

Cette modification force l'ordre du tri. Vous devriez voir le résultat directement sur la page catégorie.
Par contre, cette solution ne prendra plus en compte l'ordre de tri demandé sur la page.

ou il faut modifier le fichier product-sort.tpl et ajouter une nouvelle option de tri.

Link to comment
Share on other sites

oui je veux ajouter cette option de tri et quelle soit celle par défaut dans la page catégorie en + les autres options de tri seront actives eux aussi.
avez vous une proposition de fonction de tri ou une piste?
merci

Link to comment
Share on other sites

le fichier joint ne veux pas partir !!
voici le contenu

{if isset($orderby) AND isset($orderway)}

({$nb_products|intval} {if $nb_products>1}{l s='products'}{else}{l s='product'}{/if})

{if isset($smarty.get.id_category) && $smarty.get.id_category}
   {assign var='request' value=$link->getPaginationLink('category', $category, false, true)}
{elseif isset($smarty.get.id_manufacturer) && $smarty.get.id_manufacturer}
   {assign var='request' value=$link->getPaginationLink('manufacturer', $manufacturer, false, true)}
{elseif isset($smarty.get.id_supplier) && $smarty.get.id_supplier}
   {assign var='request' value=$link->getPaginationLink('supplier', $supplier, false, true)}
{else}
   {assign var='request' value=$link->getPaginationLink(false, false, false, true)}
{/if}
<form id="productsSortForm" action="{$request}">



{l s='--'}
{l s='Price: lowest first'}
{l s='Price: highest first'}

           {*REINETTE modification*}
{l s='Quantity: lowest first'}
{l s='Quantity: highest first'}

{l s='Sort by'}

</form>

{/if}

Link to comment
Share on other sites

ces 2 fichier sont pour la version 1.3 et moi je travaille avec la version 1.2.5.ça marche pas
je voudrais savoir comment ajouter un autre type de tri dans la liste des tri par défaut (voir image), ce tri sera par quantité du produit en stock.
merci

38173_FXVkddlvC0y1YxiFQ5OA_t

Link to comment
Share on other sites

  • 2 weeks later...

merci reinette pour le coup de main
enfin j'ai résolu mon problème en modifiant 2 fichiers :
-le 1er :/admin/tabs/AdminPPreferences.php l 48

                array(
                   array('id' => '0', 'name' => $this->l('Product name')),
                   array('id' => '1', 'name' => $this->l('Product price')),
                   array('id' => '2', 'name' => $this->l('Product added date')),
                   array('id' => '4', 'name' => $this->l('Position inside category')),
                   array('id' => '5', 'name' => $this->l('Manufacturer')),
                   array('id' => '3', 'name' => $this->l('Product modified date')),
////////////////////////////////////ligne ajoutée///////////////////////////////////////////
                   array('id' => '6', 'name' => $this->l('Product quantity'))
///////////////////////////////////////////////////////////////////////////////////////////////////
               ), 'identifier' => 'id'),



-et pour le 2ème fichiers thème/product-sort.tpl l 15 changer cette ligne

{l s='--'}


par

            {l s='--'}



aprés ces changement rendez vous en BO Préférences/produits et sélectionner le tri par défaut selon quantité et l'ordre voulu
et voilà, c fait :-P
je vous rappel que j'ai fait ces modifs sur la version 1.2.5

Link to comment
Share on other sites

  • 1 month later...

essaye avec les modifs dans les 2 fichiers /admin/tabs/AdminPPreferences.php L 48 et votrethème/product-sort.tpl L 15 puis modifie ton tri par défaut dans Préférences/produits =>tri par défaut

Link to comment
Share on other sites

Il manque une virgule après

array('id' => '6', 'name' => $this->l('Product quantity'))


Il faut donc mettre

array('id' => '6', 'name' => $this->l('Product quantity')),



Avec la virgule plus de page blanche et product quantity qui apparait dans le choix des classement produits dans preference>produit.

Et en front office ça fonctionne.
Si ordre decroissant affichage en stock puis en dessous stock épuisé.
Merci.

Link to comment
Share on other sites

  • 2 weeks later...

bonjour
apparemment cette modification marche bien pour la liste des produits dans une catégorie et pas dans la pages de recherche. parce que lorsque je fait une recherche sur ma boutique il m'affiche la liste des résultats avec tri par position

search.php?orderby=position&orderway=desc&search_query=console

, j'ai changer la ligne dans le fichier serach.php

$search = Search::find(intval(Tools::getValue('id_lang')), $query, 1, 10, 'position', 'desc', true);

par cette ligne

$search = Search::find(intval(Tools::getValue('id_lang')), $query, 1, 10, 'quantity', 'desc', true);

mais le tri ce fait toujours par position

Link to comment
Share on other sites

  • 1 year later...

Hello,

 

je déterre ce vieux topic, pour savoir si quelqu'un à la solution pour appliqué cette méthode à la version 1.5.2 de prestashop ?

 

Donc en gros, rajouter l'option " ordre par quantité en stock " dans les options de tri par défaut de PS et ceci en B.O. pour que cela se répercute en F.O

 

merci d'avance

Link to comment
Share on other sites

  • 2 months later...
  • 2 months later...

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