Jump to content

Astuce : Supprimer une commande


Recommended Posts

Bonsoir à tous,

Après avoir cherché comment supprimer une commande, j'ai plus ou moins compris le fichier AdminTab.php. Si j'ai bien compris, voici l'astuce qui se révèle être très simple :

Dans le fichier /admin/tabs/AdminOrder.php, il suffit de rajouter la ligne

class AdminOrders extends AdminTab
{

   public function __construct()

   {    
       //-- Possibilité de supprimer la commande --//
       $this->delete = true;



[EDIT] Après avoir modifié le fichier, devant chaque commande il y'aura la 'X' pour supprimer commande par commande, comme on peut le voir sur la capture d'écran. Après validation, tout est bien supprimer, la commande, la commande chez le client ainsi que la commande dans les stats.

Attention, les produits ne sont pas réinjecter dans la base de données.
[/EDIT]


A bientôt

6180_7RiOeOOWg6gpH3aa5Nwf_t

  • Like 1
Link to comment
Share on other sites

Merci Zendik, les outils d'administration du forum sont vraiment puissantes.

Le code se rajoute à la ligne 20,21 du fichier se trouvant dans ton répertoire d'administration (que tu as du modifié) /admin/tabs/AdminOrders.php

Lorsque tu verras tes commandes (toujours dans l'onglet Commande), l'icone x sera présente. Tu pourras supprimer chaque commande.

Link to comment
Share on other sites

ah... coool... pourquoi la team ne mettrait pas ça d'office ? (avec une alerte bien entendu...)

de toutes façon, la mise à jour du stock... quand tu réinjecte un produit.... ben il est pas réinjecté (en tous cas pas pour moi).

merci whitespirit; sympa de partager ça. (et c'est vrai que dans les stats, c'est chiant)

sinon, t'aurais la même pour les paniers ? vu que Philippe il est dé-bor-dééééé :-)
parce que des rigolos qui t'en mettent pour 50.000 euros dans les paniers (comment ça ils viennent du forum PS ? hum ? ah oui !), ça fout aussi un peu les stats en l'air.
tu sais faire ? même pas cap hein ?!

Link to comment
Share on other sites

@whitespirit - ta modif marche tres bien, par contre elle ne ré-injecte pas en stock la quantité correspondant à la commande supprimée comme l'as dit Thierry-02. Il faut la re-entré manuellement. Si tu trouves c'est le very top.
et bravo pour les solutions que tu nous donnes

Link to comment
Share on other sites

@whitespirit - ta modif marche tres bien, par contre elle ne ré-injecte pas en stock la quantité correspondant à la commande supprimée comme l'as dit Thierry-02. Il faut la re-entré manuellement. Si tu trouves c'est le very top.
et bravo pour les solutions que tu nous donnes


quand ça fonctionnera - il vaudra mieux le faire manuellement, via les outils du BO existants. sinon, bonjour les surprises...
mais si une soluce fiable existe, je suis preneur aussi... évidemment.
Link to comment
Share on other sites

il faut un module pour ça ?
tu ne crois pas qu'un bout de code "bien placé" peut suffire ? genre ce que tu indiques plus haut ?


Pour les non codeurs ce serait plus pratique. On parle de boutiques en prod... donc ça évitera les accidents...
Link to comment
Share on other sites

Super ! ça semble marcher nikel :-) La commande est bien supprimée, aussi bien dans le BO du vendeur que celui du client. Les stats de l'accueil BO vendeur sont mises à jour. Bravo !

Rien de mieux que du Whitespirit pour nettoyer la table :lol:

Maintenant c'est vrai qu'une validation officielle de la Team serait toujours bienvenue... pourquoi ne pas l'avoir intégré de base dans la solution ? Est-ce un oubli ou y'a t'il une raison ?

Link to comment
Share on other sites

Coucou,

Content de voir que cette astuce plait à certain. Mine de rien, j'ai passé 2h de temps avant de la trouver et surtout de comprendre en partie le fichier AdminTab se trouvant dans /classes (d'ailleurs, je l'ai trouvé bien fait, domage qu'il n'est pas commenté, vraiment domage). Je n'ai pas encore eu le temps de voir pour un éventuel module qui offre comme option de ré-injecter. En fait, il faudrait vraiment évaluer si le jeu en vaut la chandelle, car l'intérêt de modifier le fichier est qu'on est toujours sur la même page de commande, ce qui est logique si on réflechit. Par contre, pour ré-injecter des produits (je crois), il est possible de le faire depuis le détail de la commande. Moi, je trouve ça bien, comme ça on est pratiquement sûr de ne pas faire une erreur de manipulation.

@Herve.B: j'ai pu lire, il y'a fort fort longtemps, un membre officiel de la team qui disait qu'ils n'ont pas donné cette possibilité car on ne doit pas supprimer une commande mais l'annuler. Moi je trouve ça un peu "pénible" car j'estime que c'est à l'utilisateur de décider de ce qu'il doit faire même s'il va à l'encontre de la loi.

Quoi qu'il en soit, surtout faites ce que je dis, pas ce que je fait : sauvegarder votre base de données !!!

Link to comment
Share on other sites

Ok, pour la justification "légale" de la Team. En fait, dans un premier temps j'ai utilisé ton astuce pour simplement faire un petit nettoyage avant mise en production. Et c'est bien pratique.
En revanche, il est vrai que lors de la remise au client, il vaut sans doute mieux faire disparaître cette fonctionnalité.

Link to comment
Share on other sites

Super ! ça semble marcher nikel :-) .....

Rien de mieux que du Whitespirit pour nettoyer la table :lol:

........


je viens encore de l'utiliser c'est le top. BRAVO

Au fait ça marche aussi pour les voisins désagréable :-)
Link to comment
Share on other sites

Je vous déconseille vivement d'utiliser cela pour supprimer une commande, car la commande sera seulement supprimé de la table order, il restera toujours des données dans des tables comme order_detail, order_discount, order_history ...
Cela peut poser de gros problème ensuite ...

Link to comment
Share on other sites

Je vous déconseille vivement d'utiliser cela pour supprimer une commande, car la commande sera seulement supprimé de la table order, il restera toujours des données dans des tables comme order_detail, order_discount, order_history ...
Cela peut poser de gros problème ensuite ...


@whitespirit - et ben voila t'as du pain sur la planche :-)
Link to comment
Share on other sites

Bonjour, voila j'ai modifier un petit bout de code pour pouvoir non pas supprimé mes annulé la commande et pouvoir réinjecté le produit a la vente ,j'ai fait des essais en interne ca marche mes avant de le mettre sur mon site aurais voulu avoir des avis d'autre personne car je ne connet rien en programation et j'ai pas envi de planté mon site merci .c'est dans admin puis tabs et le fichier AdminOrders,j'ai donc rajouté ca


if (isset($_POST['reinjectQuantities']) OR (!$order->hasBeenDelivered() AND !$order->hasBeenPaid()))
if (!Product::reinjectQuantities($id_order_detail, $qtyCancelProduct))
$this->_errors[] = Tools::displayError('Cannot re-stock product').' '.$orderDetail->product_name.'';



le plus simple voila le fichier joint

AdminOrders.php

Link to comment
Share on other sites

Je vous déconseille vivement d'utiliser cela pour supprimer une commande, car la commande sera seulement supprimé de la table order, il restera toujours des données dans des tables comme order_detail, order_discount, order_history ...
Cela peut poser de gros problème ensuite ...


j'men doutais. c'est ppourquoi je l'ai pas fait. :-)

sinon, quand on annule une commande, elle est toujours là est visible.
un bouton "cacher les commandes annulées" dans le BO serait sympa.
et une commande annulée, qui ne serait plus visible dans le compte du client serait aussi un plus non ?
Link to comment
Share on other sites


de toutes façon, la mise à jour du stock... quand tu réinjecte un produit.... ben il est pas réinjecté (en tous cas pas pour moi).

Salut
Tu le fait comment pour réinjecter ton stock , par l'outil import tu te sert de l' id ?

Merci
Link to comment
Share on other sites

Je vous déconseille vivement d’utiliser cela pour supprimer une commande, car la commande sera seulement supprimé de la table order, il restera toujours des données dans des tables comme order_detail, order_discount, order_history …
Cela peut poser de gros problème ensuite …


Il y'a quelque chose que je n'arrive pas à comprendre en tant que développeur php/mysql. Comment se fait-il que la base de données prestashop ne respecte pas l'intégrité référentiel, et donc la suppression en cascade ? C'est à mon sens une erreur fondamentale de développement. Pourquoi garder dans la base de données de autres tables jointes ? Sauf si on me prouve le contraire, c'est une erreur de débutant de ne pas utiliser la suppression en cascade car en plus de ne pas utiliser une fonctionnalité importante des SGBDR, on va ajouter du code PHP->MYSQL inutile alors qu'on peut factoriser le code depuis MySQL.

Pour info : il n'y a absolument aucun danger de garder des traces dans d'autre tables, mais c'est super crade. Un peu comme si vous balayer votre maison et ranger la poussière sous le lit. Si y'a un peu de poussière, c'est que dalle mais si vous faites ça tous les jours....

Pour remedier à ce problème, ce n'est pas trop compliqué là aussi, il suffit de récupérer l'id de la commande et d'effacer soit même les tables liés. Mais ça va demander à modifier encore le fichier TabOrder.php et je ne suis pas pour, car pour les mises à jour, ça ne va pas être gérable. Du coup, un module est indispensable.

Peut-être pas ce week, mais la semaine prochaine je me penche sur le pb. Ceci dit en attendant, le module "Nettoyage des tables" fonctionne bien pour la mise en production d'une base.

PS: si quelqu'un est motivé pour développer avec moi ce module, je serai ravi.
Link to comment
Share on other sites

Je serais curieux de lire une réponse de l'équipe Prestashop au sujet de cette intégrité référentiel et de la suppression en cascade... :)
Je reste très étonné aussi de ne pas voir davantage de retour sur le module Nettoyage des tables de Whitespirit qui pourtant répond à une large attente des utilisateurs... tiens, je m'en vais poster un +1 UP là-bas ;-)

Link to comment
Share on other sites



Pour info : il n'y a absolument aucun danger de garder des traces dans d'autre tables, mais c'est super crade. Un peu comme si vous balayer votre maison et ranger la poussière sous le lit. Si y'a un peu de poussière, c'est que dalle mais si vous faites ça tous les jours....


:) Bon je le fais déjà dans ma maison , alors sur mon site web .... :)
En tout cas merci beaucoup, pour ton investissement ....
Ton Karma va monter en flèche :D
Link to comment
Share on other sites

+1 d'accord avec WhiteSpirit, l'intégrité référentiel avec un effacement en cascade pas plus simple???
Les développeurs de Prestashop ont surement leur raison et ne manqueront pas de nous l'expliquer?!

En tout cas merci WhiteSpirit

Link to comment
Share on other sites

  • 2 weeks later...

Merci WhiteSpirit j'essaye dès que possible

et +1 pour la proposition du pinguin ;-)

un bouton “cacher les commandes annulées” dans le BO serait sympa.
et une commande annulée, qui ne serait plus visible dans le compte du client serait aussi un plus non ?
Link to comment
Share on other sites

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

Bonsoir à tous,

je reviens sur ce post... des news ? moi j'avais 4 commandes "tests" que j'ai supprimé en modifiant le code du fichier AdminOrders et c'est vrai que ça marche nickel :-))

Les stats sont à 0 par contre les chiffres du panier moyen par exemple restent "alimentés".

Link to comment
Share on other sites

Ben, il faut essayer... chez 3 hébergeurs ça m'a fait 3 choses différentes : 1 ça marche, l'autre rien ne se passe qd je valide et le troisième j'ai un "fatal error".

j'ai posté sur le forum mais pas de soluce pour le moment.

Link to comment
Share on other sites

Ben, il faut essayer...


Bha oui mais encore faut-il savoir ce que ça laisserait comme trace, et "où".
Pour le moment on nous a dit que ça pouvait laisser des traces, si je dois me taper la DB complète pour essayer d'en trouver c'est chaud ^^
Link to comment
Share on other sites

  • 2 months later...
  • 2 months later...
  • 5 weeks later...

Salut,

Je suis un peu étonné. Prestashop est super, l'installation des tables de jeu d'essai est obligatoire mais la team n'a pas prévu de suppression des essais avant mise en production... étrange ! Et puis ça n'a pas l'air de la stresser.

Pas de réponse non plus sur l'intégrité référentielle.

Perplexité devant tant de bonnes idées d'un côté, et tant d'amateurisme de l'autre. La loi Chatel non appliquée en est un autre exemple.

Et puis cette manière hautaine de répondre à la communauté. Jamais de remise en question ! Dommage.

Qu'en pensez-vous ? Je ne veux pas troller, juste faire avancer les choses.

Bon, ce n'est pas tout, j'vais nettoyer mes bases à la mimine, moi :-)

Qui aime bien châtie bien.

Link to comment
Share on other sites

Prestashop est super


Ouep ! :)

l'installation des tables de jeu d'essai est obligatoire


Non, il suffit de cocher à l'installation si on veut une installation simple (sans exemple ni modules installés) ou une installation avec les exemples.

Et puis ça n'a pas l'air de la stresser.


Je t'assure que les dev ne se tournent pas les pouces. Mais ils ne travaillent pas que sur la solution. Il y a pas mal de choses à gérer à coté pour faire tourner la boîte.

Pas de réponse non plus sur l'intégrité référentielle.


C'est quoi la question ?

Perplexité devant tant de bonnes idées d'un côté, et tant d'amateurisme de l'autre.


Rome ne s'est pas faite en un jour, PrestaShop non plus. Beaucoup sont d'ailleurs étonnés du résultat obtenu en si peu de temps. Mais il reste beaucoup à faire, beaucoup de choses importantes, mais aussi beaucoup de détails qui changent la vie. Mais ça demande du temps.

Et puis cette manière hautaine de répondre à la communauté. Jamais de remise en question ! Dommage.


Des exemples ?
Pourquoi jamais de remise en question ?
Nous sommes conscients des problèmes rencontrés par les marchands et les gens de la communauté. Nous faisons ou projetons de faire au mieux pour les résoudre. Mais encore une fois, ça prend du temps...
Link to comment
Share on other sites

Hérisson tendre - 12 December 2009 12:15 PM
Prestashop est super

Ouep ! smile

Je confirme.
l’installation des tables de jeu d’essai est obligatoire

Non, il suffit de cocher à l’installation si on veut une installation simple (sans exemple ni modules installés) ou une installation avec les exemples.

Dans ce cas, a-t-on les tables indispensables (pays...) (non testé)
Pas de réponse non plus sur l’intégrité référentielle.

C’est quoi la question ?

Post #29 de ce topic
Et puis cette manière hautaine de répondre à la communauté. Jamais de remise en question ! Dommage.

Des exemples ?

Je n'ai pas noté les posts, mais tu les auras au fur de mes prochain surfs sur le forum, promis.

Et puis ça n’a pas l’air de la stresser.

Je t’assure que les dev ne se tournent pas les pouces. Mais ils ne travaillent pas que sur la solution. Il y a pas mal de choses à gérer à coté pour faire tourner la boîte.

Je réfléchis actuellement à 4 possibilités :
1) créer mon propre logiciel (vérifier mes capacités et mon temps libre)
2) participer à l'évolution du produit (idem + que puis-je apporter ?)
3) passer à Magento
4) arroser mon chat, booster mon jardin, faire un câlin à mes PC
Hey, beau boulot quand même !
Link to comment
Share on other sites

  • 2 months later...
  • 3 weeks later...

Bonjour à tous.

Un petit déterrage de post :cheese:

Je n'ai pas tout relu les posts du sujet, juste pour information, il est interdit de détruire une commande liée à la comptabilité :

commande <> facture <> paiement

Ceci dit, pour relater le problème du matériel retiré du stock, avez vous tester l'option retour de marchandise liée à la commande (voir détail de commande), puis détruisez la commande !

je sais, ça fait 2 étapes au lieu d'une seule, m'enfin bon, à tester ?

Cordialement.

Link to comment
Share on other sites

  • 4 months later...
  • 4 weeks later...

Bonjour à tous,

est-il possible de supprimer une commande lorsque le produit n'apparait plus dans celle-ci (voir pièce jointe) ?

La commande est annulée mais le montant de celle-ci reste comptabilisé, et ça m'éclate les stats !



Merci pour votre aide.

Tchussss

27643_RpMvNlkeQ9hgXPbxJI0r_t

Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...

oups j'ai rajouté la ligne de code dans l'avant dernière version de prestashop mais mes commandes n'apparaissent plus, même quand j'en passe après avoir fait ce changement.
apparamment ce petit changement n'est pas très apprécié des dernières versions de prestashop.

Link to comment
Share on other sites

  • 4 months later...
  • 2 weeks later...
  • 1 month later...
  • 2 months later...
  • 3 weeks later...

Olé,

 

il existe un module espagnol gratuit qui s'appelle "borra pedidos", qui s'intègre parfaitement en BO (Ok pour V1.3...) et permet d'effacer les commandes...

Attention: n'est à utiliser que sur des commandes préalablement annulées.

Si vous ne le trouvez pas, je dois pouvoir faire une copie du dossier module.

 

Cordialement. Daniel

Link to comment
Share on other sites

Olé,

 

il existe un module espagnol gratuit qui s'appelle "borra pedidos", qui s'intègre parfaitement en BO (Ok pour V1.3...) et permet d'effacer les commandes...

Attention: n'est à utiliser que sur des commandes préalablement annulées.

Si vous ne le trouvez pas, je dois pouvoir faire une copie du dossier module.

 

Cordialement. Daniel

 

Je ne peux que réitérer ce qu'il m'est arrivé une ou deux fois de dire,

La suppression d'une commande n'a rien de logique. Un commande s'annule mais ne se supprime pas ... Et surtout , la suppression d'une commande peut toujours avoir des impacts très désagrables , et n'est que rarement sans conséquence.

 

Pensez juste à ce qu'il se passerait en cas de contrôle fiscal ? Tout bonnement on va vous soupçonner par défaut de vouloir masquer des opérations , ce qui serait ballot.

 

C'est l'exemple de base, bête et méchant , mais ça me prendrait trop de temps de citer tous les désagréments techniques que l'on pourrait rencontrer.

Link to comment
Share on other sites

Bonsoir,

 

et merci à Broceliande de ce rappel, qui appelle une réponse de 2 points de vue:

 

D'abord le point de vue technique: tout à fait d'accord, :)la suppression d'une commande n'est pas un acte naturel, et les interactions entre tables doivent être maitrisées avant toute tentative.(personnellement je n'utilise cela qu'après les jeux d'essai, en début de mise en prod).

 

Ensuite du point de vue "légal" :mellow:: la peur du contrôle fiscal me semble dans ce cas une erreur...pour mémoire le document comptable enregistré est la facture, et là interdiction légale de supprimer.

Pour le reste, chacun est relativement libre de mettre en place les procédures administratives correspondant à son activité. Celui qui sera redressé par le fisc n'est pas celui qui efface ses quelques commandes non livrées et gênantes pour les stats, mais celui qui aura dissimulé son CA ou triché sur la valorisation de ses stocks etc...

 

Je suis en fait assez géné par ce discours Prestashopien :wacko:: c'est comme si, avec ces grands arguments, Prestashop souhaitait masquer son insuffisance en termes de "gestion commerciale", et de liaison entre boutique et comptabilité.

Exemple type: la gestion et la valorisation des stocks, totalement inexistante alors que tous les élèments sont contenus dans les bases de données... et là, plantez-vous sur un contrôle fiscal et vous êtes bon ! (modification directe du résultat comptable).

 

Je demande surtout à Brocéliande d'excuser mon propos trop vif (d'autant plus que j'apprécie en général ses interventions :)), mais on est là sur un sujet que j'ai abordé plusieurs fois, et sur lequel je ne comprends pas l'attitude de Prestashop:

Pourquoi la gestion co n'est -elle faite qu'à moitié? (c'est une question de concept, non de technique)

Pourquoi ne choisit-on pas, soit de la terminer (toutes les données sont déjà là), soit de la supprimer (en favorisant la liaison vers un système externe normal)?

 

En espérant que cette discussion aura eu au moins l'utilité d'aiguillonner le team Prestashop sur la question ;),

Cordialement. Daniel

Link to comment
Share on other sites

  • 3 weeks later...

Bonsoir à tous,

Après avoir cherché comment supprimer une commande, j'ai plus ou moins compris le fichier AdminTab.php. Si j'ai bien compris, voici l'astuce qui se révèle être très simple :

Dans le fichier /admin/tabs/AdminOrder.php, il suffit de rajouter la ligne

class AdminOrders extends AdminTab
{
public function __construct()
{	
	//-- Possibilité de supprimer la commande --//
	$this->delete = true;

[EDIT] Après avoir modifié le fichier, devant chaque commande il y'aura la 'X' pour supprimer commande par commande, comme on peut le voir sur la capture d'écran. Après validation, tout est bien supprimer, la commande, la commande chez le client ainsi que la commande dans les stats.

Attention, les produits ne sont pas réinjecter dans la base de données.

[/EDIT]

A bientôt

 

Bonjour, nouveaux sur prestashop j'aurais besoin de ce système mais j'arrive pas à l'installer correctement pouvez-vous m'aider svp?

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...
  • 2 months later...
  • 4 months later...
  • 3 weeks later...
  • 1 month later...
  • 2 months later...

Pour presta 1.5.X le même genre d'astuce semble fonctionner.

Le fichier en question a changé de place c'est maintenant dans : /www/controllers/admin/AdminOrdersController.php et il faut ajouter à la suite de :

public function __construct()

{

$this->table = 'order';

$this->className = 'Order';

$this->lang = false;

$this->addRowAction('view');

$this->explicitSelect = true;

 

/*@ACK @astuce Ajouter une colonne pour supprimer une commande une à une. Pratique pour faire disparaitre les tests. Attention! Ne remet pas à jour les stocks et le fisc français n'aime pas les trous dans les numéros d'index de commandes*/

//$this->addRowAction('delete');

//$this->delete = true;

 

Dé-commentez les deux lignes le temps de supprimer les commandes puis re-commentez les.

Link to comment
Share on other sites

  • 4 months later...
  • 6 months later...

Salut,

 

Cela me semble nécessaire de pouvoir supprimer des commandes pour une raison toute simple, c'est que lorsque l'on installe prestashop, des commandes d'exemple existent!

 

Alors c'est peut-être interdit mais il y a là, un dilemme !!

 

Slts,

Alain

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