mardi 6 mars 2012

[Prestashop] Changer les statuts d'un grand nombre de commandes

Vous vous trainez un nombre important de commandes qui sont "en cours de livraison", et pour lesquelles vous souhaiteriez toutes les passées en "livré" ?


Changer le statut de plusieurs commandes sur Prestashop 1.3. et 1.4

Je me suis posé ce problème aujourd’hui car je bloquais sur 7000 commandes qui étaient restées au statut "en cours de livraison". J'ai voulu les passer toutes au statut "livré", car cela améliore la lisibilité des commandes pour les clients qui repassent commande.


1. Récupérer les commandes au statut livré

Pas si simple en soi, car la table order_history contient tous les status passés et actuels pour chaque commande. Il faut donc prendre le statut le plus récent avec la fonction MAX sur le id_order_history. Vérifiez que le statu "livré" est bien le 4 (si vous ne l'avez pas changé), et lancez la requête ci-dessous.

SELECT id_employee, id_order, id_order_state 
FROM `ps_order_history` oh

WHERE oh.`id_order_history` = (
    SELECT MAX(`id_order_history`)

     FROM `ps_order_history` moh

    WHERE moh.`id_order` = oh.`id_order`
    GROUP BY moh.`id_order`)
AND id_order_state = 4

 Exportez ensuite ce résultat dans un éditeur de texte ou de code.

2.  Chercher - Remplacer

Cherchez simplement l'occurrence ", 4," dans le fichier, et remplacez-le par l'id du statut livré : ", 5,". Le tour est joué, il suffira d'importer le fichier à nouveau dans votre base. 

Si vous le souhaitez, vous pouvez jouer sur la date, en la sélectionnant dans votre requête SQL et en la modifiant dans le fichier grâce aux expressions régulières.

Complétez votre lecture avec mon article "débuter en référencement".

Aucun commentaire:

Enregistrer un commentaire