Jump to content

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)
Link to comment
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

Link to comment
Share on other sites

  • 2 weeks later...

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

Link to comment
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 :)

Link to comment
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!!!

Link to comment
Share on other sites

  • 1 month later...

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"... :-)

Link to comment
Share on other sites

  • 3 weeks later...

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. 

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

Link to comment
Share on other sites

  • 1 month later...

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. 

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