Jump to content

Ordre des états des commandes


Recommended Posts

Bonjour à tous.

Comme quelques uns d'entre nous, nous avons une liste très riche d'états dans lesquels les commandes peuvent être positionnés.

Trop d'ailleurs par rapport au besoin.

Je ne souhaite pas en supprimer quand même, car on ne sait jamais de quoi l'avenir sera fait. Je souhaite par contre regrouper en tête de liste les états qui sont utiles au fonctionnement de la gestion des commandes.

Dans "Boutique / Commandes / états des commandes" j'ai bien trouvé comment créer de nouveaux états, éventuellement supprimer, ceux qui ont été créés par des modules anciens, mais je n'ai pas trouvé comment revoir l'ordre d'affichage des états.

Je n'ai pas trouvé d'astuce dans le forum, quelqu'un a-t-il déjà satisfait le même besoin?

Je vous remercie

 

Link to comment
Share on other sites

Perso je nettoierai les statuts inutiles, mais sinon tu peux faire un "faux" ménage en les renommant, tu ajoutes par exemple "z_" devant, et comme les états sont triés par ordre alphabétique, tous les états inutiles se mettront en bas de liste.

Moi je cherche pour pouvoir n'afficher que les commandes non finalisées pour nettoyer visuellement le travail à faire.

Link to comment
Share on other sites

Merci pour ce retour

La plupart des status non pertinents fait partie des non retirables. Donc on va les laisser.

Par contre, effectivement en les renommant z_ en entête ça les plaque en fond de panier, ce qui était l'effet recherché.

J'ai appliqué cette modif sur la préprod, j'attends le retour des utilisateurs du BO avant déploiement...

Merci pour l'astuce, des fois les trucs les plus simples sont les plus efficaces...

  • Like 1
Link to comment
Share on other sites

  • 1 year later...

Salut,
Comme j'ai eu la problématique sur un Prestashop 1.6.1.17, je me suis trouvé la solution suivante qui fonctionne au poil :

D'abord je me suis noté les ID de chaque statut, depuis le Back Office - Commandes - statuts

Ensuite il convient d'éditer le fichier classes/order/OrderState.php et modifier la fonction : public static function getOrderStates($id_lang)
Dans cette fonction il y a la requête qui affiche tous les statuts.
Nous allons donc dans le WHERE lui indiquer les id des statuts que l'on souhaite afficher 

WHERE deleted = 0 and osl.id_order_state in (22,2,6,7,8,9,21,22,23,24,25,28,31,32,36,37,3,35,18)

les chiffres entre parenthèses correspondent aux statuts qui doivent apparaitre, les autres statuts n'apparaitront pas, ils ne sont pas supprimé pour autant.

Puis pour les mettre dans l'ordre précis il convient de faire à la suite du WHERE un ORDER BY comme ceci :

 

	WHERE deleted = 0 and osl.id_order_state in (22,2,6,7,8,9,21,22,23,24,25,28,31,32,36,37,3,35,18)
			ORDER BY 
			CASE 
			WHEN osl.id_order_state = 22 THEN 1
			WHEN osl.id_order_state = 23 THEN 2
			WHEN osl.id_order_state = 3 THEN 3
			WHEN osl.id_order_state = 24 THEN 4
			WHEN osl.id_order_state = 9 THEN 5
			WHEN osl.id_order_state = 25 THEN 6
			WHEN osl.id_order_state = 31 THEN 7
			WHEN osl.id_order_state = 32 THEN 8
			WHEN osl.id_order_state = 7 THEN 9
			WHEN osl.id_order_state = 6 THEN 10
			WHEN osl.id_order_state = 36 THEN 11
			WHEN osl.id_order_state = 37 THEN 12
			WHEN osl.id_order_state = 8 THEN 13
			WHEN osl.id_order_state = 2 THEN 14
			WHEN osl.id_order_state = 18 THEN 15
			ELSE 15
			END


Le chiffre après le THEN correpond à l'ordre choisi.
Concrètement dans mon cas de figure le statut ID 22 sera en 1ère position, le 23 en 2ème position ...


 

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