Jump to content
Lucho09

Stock avancé : Quantité suivant statut de commande

Recommended Posts

Salut,

 

J'ai plusieurs boutiques sur le même PS1.5.6.1 mais une seule avec un front et les autres avec logiciel de caisse Sora pour la caisse en magasin physique.

 

Tous les produits sont dans des entrepots différents avec gestion des stocks avancée.

 

Mon problème est sur la boutique web.

 

Quand une commande arrive, le stock est bien enlevé du stock disponible.

Je passe la commande en "Préparation en cours", jusque là, tout va bien.

Quand je passe la commande en "En cous de livraison", le stock disponible se remet comme avant la commande. C'est à dire que le stock est ré-incrémenté du nombre d'articles commandés. La quantité physique, elle, n'a pas changée.

 

Un exemple avec un produit A avec une quantité physique de 10 et une quantité utilisable de 10.

 

Un client m'en commande 2 exemplaires :

 

Paiement accepté :

 

Produit A -> qté physique 10 / qté utilisable 8 -> OK

 

Préparation en cours :

 

Produit A -> qté physique 10 / qté utilisable 8 -> OK

 

En cours de livraison :

 

Produit A -> qté physique 10 / qté utilisable 10 -> PAS OK

 

Livré :

 

Produit A -> qté physique 10 / qté utilisable 10 -> PAS OK

 
 
Au final, les quantité utilisables de ma commande ne se sont pas enlevées du stock...
 
Quelqu'un aurait une solution ou une piste?
Merci d'avance
Edited by lucvillalba (see edit history)

Share this post


Link to post
Share on other sites

Après quelques tests, je me suis rendu compte que les mouvements de stocks pour les commandes clients ne sont pas enregistrés dans la base de données. Je n'ai aucun mouvement de stock avec comme valeur 3 dans id_stock_mvt_reason

Share this post


Link to post
Share on other sites

Personne n'a une idée?

 

J'ai vu que je n'étais pas le seul à avoir le soucis.

Share this post


Link to post
Share on other sites

Hello Luc,

 

Contacte moi, on regardera ensemble :)

 

Keutche

Share this post


Link to post
Share on other sites

Bonjour,

 

J'ai le même problème...

Avez-vous trouvé une solution/explication qui pourrait m'aider ?

 

++

Share this post


Link to post
Share on other sites

Pas de solution pour l'instant mais je posterai ici si j'ai du nouveau

Share this post


Link to post
Share on other sites

Alors j'ai réussi à fixer le problème. Je me donne une semaine de commandes pour voir si tout roule.

 

J'ai renommé le dossier "override" en "old_override".

Ensuite j'ai fait une nouvelle commande et j'ai changé le statut en "paiement accepté", "préparation en cours", "livraison en cours" puis "livré".

J'ai rétabli le nom du dossier "override".

J'ai refait une commande et tout est OK.

 

Testé avec plusieurs commandes et plusieurs boutiques (sur la même install)

 

Je pense qu'en ayant renommé le dossier, ça a du régénérer un fichier je suppose... Si quelqu'un a une explication...

Share this post


Link to post
Share on other sites

Alors il y a un hic, certains modules ne fonctionnaient plus suite à la manip, il a donc fallu que je régénère le fichier cache/class_index.php et depuis, le problème est revenu.

Share this post


Link to post
Share on other sites

En natif cela fonctionne trés bien donc je pencherai sur un module bugger qui dans l'override écraserait les bonnes fonctions pour ces actions. Je n'arrive pas à localiser le module qui pose pb.

Edited by AlexandreM13 (see edit history)

Share this post


Link to post
Share on other sites

En natif cela fonctionne trés bien donc je pencherai sur un module bugger qui dans l'override écraserait les bonnes fonctions pour ces actions. Je n'arrive pas à localiser le module qui pose pb.

J'aurai donné la meme réponse.

Pour localiser le module, il suffit de faire les tests en renomant les fichiers du contenu du dossier /overides un a un. Il est tout a fait normal que certains modules ne fonctionnent plus quand on renomme ce dossier.

Tenez nous au courant :)

Share this post


Link to post
Share on other sites

J'ai localisé le problème.

 

Après avoir supprimé un à un les dossiers et fichiers du dossier override, je me suis rendu compte que c'était dans override/classes/order/Order.php

 

Reste plus qu'à trouver la ligne qui fout le bordel!!!

Share this post


Link to post
Share on other sites

Bonjour Lucho09, 

 

Avez-vous trouvé la solution car j'ai le même problème ? 

Merci.

Share this post


Link to post
Share on other sites

Mon problème est résolu mais c'est suite à la mise à jour d'un de mes modules.

Cela a dû modifier les override mais je ne pourrai pas dire la solution au problème.

Share this post


Link to post
Share on other sites

Ok. Mais quel module avez-vous mis à jour ? Est-ce qu'il faut essayer de faire toutes les mises à jour ?

Share this post


Link to post
Share on other sites

Autre chose de mon côté : lorsque je veux diminuer manuellement les quantités dans le stock, ça m'indique : "Vous n'avez pas assez de quantité utilisable. Impossible d'en supprimer 1 sur 0"  pourtant j'ai bien dans ma base données les quantités utilisables = quantités physiques... dans la table prestashop_stock. 

 

Je ne sais pas si le champs usable_quantity se trouve dans une autre table et serait donc mal paramétré. 

 

Quelqu'un pourrait m'aider ? Je suis une petite "Prestashop Newbie"... :-)

Share this post


Link to post
Share on other sites

Je relance le sujet. Si quelqu'un a une solution, je suis preneuse ! Merci.

Share this post


Link to post
Share on other sites

Le module en question était le module "Products Pack". Ca n'est pas un module natif Prestashop.

 

A mon avis, ton soucis vient d'un override. Renomme les un à un et tu verra lequel pose soucis.

Share this post


Link to post
Share on other sites

Merci pour ta réponse Lucho09. Je ne sais pas ce qu'est un override et comment ça fonctionne. Je vois bien le dossier override mais il y a plein de trucs dedans... Bref, c'est compréhensible pour un développeur mais j'en suis pas une. 

Share this post


Link to post
Share on other sites

En fait, il faut que tu renommes un à un les dossiers qui sont à l'interieur de "overrides".

A chaque fois que tu en renommes un, il faut vider le cache dans le back office de prestashop "paramètres avancés --> performances --> Cear smarty cache & autoload cache".

Ensuite, tu testes si ton problème est toujours présent.

Si il persiste, tu rétablis le nom d'origine du dossier que tu as renommé et tu passes au suivant.

Si le problème est résolu, c'est que le soucis vient de ce dossier.

Il ne te restera plus qu'à mettre à jour le module correspondant pour voir si ça règle le problème. Sinon, tu peut poster le résultat ici...

Share this post


Link to post
Share on other sites

Désolée pour la réponse tardive Lucho09 mais merci beaucoup pour tes conseils. 

 

Pour mon cas, j'ai résolu le problème mais d'une autre façon. En fait, pour éviter de rentrer dans chaque fiche produit, j'avais intégré mes produits  directement dans les tables de la BDD. Or j'avais oublié une table ! En plus des tables

- "warehouse_product_location" pour indiquer l'entrepôt

- "stock_available" pour indiquer la synchro (le fameux "depends_on_stock")

- "stock" pour préciser les quantités physique et dispo dans l'entrepôt

 

il fallait aussi alimenter la table :

- "stock_mvt" pour indiquer à Prestashop qu'il y a eu une entrée de stock. 

 

Après plusieurs tests, il semble que lorsque que l'on gère avec les entrepôts, tout se gère par les mouvements de stocks. Même si des quantités apparaissent dans l'entrepôt, si il n'y a pas eu de mouvement (augmenter, diminuer, commande fournisseur, commande client, etc...), c'est comme si l'entrepôt était vide ! 

 

Dans mon cas, lorsqu'un client passait commande, au moment de la livraison, cette commande ne générait aucun mouvement de stock de sortie car il n'y avait aucun mouvement d'entrée pour l'article. Du coup, lors de la synchro, prestashop allait chercher les quantités que j'avais incrémentées dans la table "stock" mais vu qu'elles ne bougeaient pas, les quantités revenaient à leur valeur initiale. 

 

J'ai donc rentré à la main tous les mouvements de stock (en passant par la BDD pour incrémenter mon stock initial et en passant par l'interface pour les mouvements "commandes clients" - étant lancée depuis peu, j'avais peu de commandes). J'ai donc remis à plat mes quantités et maintenant que tous les articles ont une entrée de stock initiale, cela fonctionne : lors de la livraison, un mouvement de sortie est bien créé et les stocks sont mis à jour dans l'entrepôt et dans chaque fiche produit grâce à la synchro. 

 

J'espère que mon expérience pourra aider. 

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More