Blog

Problème de stock sous PrestaShop ? Voici ce qui se passe vraiment (et comment le corriger)

 

Vous voyez des quantités incohérentes dans votre back-office ? Un produit affiché« En stock (5) » alors que toutes les déclinaisons sont à 0 ? Ou l’inverse :produit marqué en rupture alors qu’il reste des pièces en réel ?

Bienvenue dans le combo explosif :Affichage stock incorrect + Problème de stock + Erreur de stock…le tout sous PrestaShop.

Dans cet article, on vous explique :

  • d’où vient le bug (référencé officiellement sur GitHub),
  • comment notre module « Phenix – Fix Stock » corrige vos données existantes,
  • et comment notre Pull Request contribue à corriger le cœur de PrestaShop pour l’avenir.

1. Comment PrestaShop gère le stock (en théorie)

PrestaShop utilise la table ps_stock_available pour gérer les quantités :

  • une ligne avec id_product_attribute = 0 pour le stock global du produit,
  • une ligne par combinaison (taille, couleur, etc.) avec son propre id_product_attribute,
  • le stock affiché en BO et sur le front se base ensuite sur ces valeurs et vos réglages (rupture autorisée ou non).

En théorie, le stock global devrait toujours être égal à lasomme des stocks de toutes les déclinaisons.

En pratique… ce n’est pas toujours vrai, et c’est là que l’Erreur de stock apparaît.

2. Le bug historique d’«affichage stock incorrect» (GitHub #12814)

Le problème est officiellement documenté sur GitHub :Lien du problème : github.com/PrestaShop/PrestaShop/issues/12814

Scénario typique :

  1. Vous créez un produit avec des déclinaisons (S, M, L, XL).
  2. Un client commande, par exemple 5 pièces en taille M.
  3. Vous supprimez une combinaison (par ex. M) pour la rendre momentanément indisponible.
  4. Plus tard, vous recréez une combinaison M (nouvel id_product_attribute).
  5. Vous annulez la commande du client → PrestaShop réinjecte le stock sur l’ancienne combinaison (celle qui n’existe plus visuellement).
  6. Résultat : dans ps_stock_available, vous vous retrouvez avec :
    • des lignes fantômes pour d’anciennes déclinaisons,
    • un stock global qui additionne tout… y compris ces lignes fantômes.

C’est exactement ce qui provoque :

  • un Affichage stock incorrect en back-office,
  • une Erreur de stock en front (produit affiché disponible alors qu’aucune déclinaison ne l’est),
  • des anomalies de stock difficiles à comprendre pour l’équipe logistique.

3. Comment reconnaître ce problème de stock PrestaShop ?

Quelques symptômes typiques :

  • Produit indiqué « 5 en stock » dans la liste des produits, alors que toutes lesdéclinaisons sont à 0 dans l’onglet « Déclinaisons ».
  • Quantité globale dans ps_stock_available différente de la somme des quantités des déclinaisons.
  • Rapports de votre ERP / WMS ou de votre logisticien en décalage avec le back-office PrestaShop.
  • Alertes clients : commande passée, puis annulation parce que le produit n’étaitpas réellement disponible.

Si vous vous reconnaissez là-dedans, vous êtes probablement victime de ceProblème de stock bien particulier lié à l’affichage stock incorrect.

4. Solution 1 : notre module «Phenix – Fix Stock»

module fix stock Phenix info

module fix stock Phenix info détails du stock

Pour traiter rapidement les boutiques déjà impactées, nous avons développé un module dédié :«Phenix – Fix Stock», conçu par notre Agence Prestashop sur Lyon, Phenix Info.

Objectif : analyser, détecter et corriger les incohérences de stock sans bricoler à la main dans la base de données.

4.1. Audit complet de la table ps_stock_available

Le module parcourt vos données pour :

  • reconstruire un stock_calculé = somme des quantités de toutes les déclinaisonsréellement existantes,
  • comparer ce stock_calculé au stock_affiché (la ligne globaleid_product_attribute = 0),
  • détecter les lignes fantômes (quantités rattachées à des déclinaisons supprimées).

Vous obtenez un tableau de synthèse clair :

  • stock_affiche : ce que PrestaShop affiche aujourd’hui,
  • stock_calcule : ce qui devrait être affiché,
  • stock_fantome : quantité portée par des combinaisons qui n’existent plus,
  • diff_aff : l’écart réel (la fameuse Erreur de stock).

4.2. Détection des produits à risque

Le module isole automatiquement :

  • les produits où le stock global ≠ somme des déclinaisons,
  • les produits avec stock_fantome > 0,
  • les cas où le front peut afficher un produit disponible alors qu’aucune déclinaison ne l’est.

C’est une couche de diagnostic claire, pensée pour les e-commerçants comme pour les techniciens.

4.3. Correction automatique des stocks

Sur chaque produit détecté, Phenix – Fix Stock propose des actions contrôlées :

  • Recalcul du stock global à partir des déclinaisons réelles,
  • Neutralisation des stocks fantômes qui polluent vos totaux,
  • mise à jour propre de ps_stock_available sans toucher à vos commandes.

L’idée est simple : remettre PrestaShop dans un état cohérent, puis laisser le système continuer son travail normal (décrémentation à la commande, réapprovisionnement, etc.).

4.4. Sécurité & performance

Parce qu’on fait du Développement prestashop et duDéveloppement addons au quotidien, le module est pensé pour :

  • ne jamais modifier vos commandes,
  • travailler uniquement sur les données de stock,
  • limiter au maximum le nombre de requêtes (critique sur les gros catalogues),
  • journaliser les corrections pour garder un historique des actions.

C’est la solution rapide si :

  • votre boutique est déjà impactée,
  • vous avez besoin de remettre à plat vos stocks sans arrêter de vendre,
  • vous ne voulez pas patcher le core de PrestaShop vous-même.

5. Solution 2 : le Pull Request que nous avons fait sur GitHub

Corriger les données existantes, c’est bien.
Empêcher que le bug se reproduise, c’est encore mieux.

C’est précisément ce que vise notre contribution au core de PrestaShop :https://github.com/PhenixInfo/PrestaShop/pull/1

5.1. Ce que fait le patch dans le core

Dans le code de PrestaShop, lors de la suppression d’une combinaison(CombinationCore::delete()), PrestaShop :

  1. supprime les lignes correspondantes dans ps_stock_available viaStockAvailable::removeProductFromStockAvailable(),
  2. mais ne recalculait pas le stock global (ligne id_product_attribute = 0).

Notre Pull Request ajoute un appel à :

StockAvailable::synchronize((int) $this->id_product);

juste après la suppression des lignes de stock de la combinaison.

Concrètement, cela signifie que :

  • à chaque suppression de combinaison,
  • PrestaShop recalcule immédiatement le stock global du produit,
  • en se basant sur la somme réelle des déclinaisons restantes,
  • et évite donc la création de nouveaux écarts ou stocks fantômes liés à ce scénario spécifiquedu Problème de stock.

5.2. Lien avec le ticket GitHub #12814

Ce Pull Request est explicitement lié au ticket d’origine :github.com/PrestaShop/PrestaShop/issues/12814

Il traite le cas documenté et vise à empêcher que ce Problème de stock ne se reproduise à l’avenir.

En résumé :

  • Notre module corrige vos données déjà impactées.
  • Notre patch améliore le comportement natif de PrestaShop pour les prochaines versions.

Les deux approches sont complémentaires.

6. Quand faire appel à une Agence Prestashop sur Lyon ?

Si vos stocks sont stratégiques (logistique externalisée, marketplace, ERP connecté…) et que vous ne pouvez pas vous permettre d’approximation, faire appel à une Agence Prestashop sur Lyon experte du sujet a beaucoup de sens.

Chez Phenix Info :

  • nous auditons vos données (base MySQL, performances, cohérence du stock),
  • nous développons des addons et modules sur-mesure,
  • nous contribuons aussi au cœur de PrestaShop quand un bug touche de nombreux marchands.

7. Et maintenant, on fait quoi pour vos stocks ?

Pour résumer :

  • Si vous constatez un Affichage stock incorrect, une Erreur de stock ou un Problème de stock difficile à expliquer :
    👉 notre module « Phenix – Fix Stock » permet de diagnostiquer et corriger rapidement.
  • Si vous voulez une base saine sur le long terme :
    👉 le Pull Request que nous avons soumis améliore la logique de stock de PrestaShop au niveau du core.
  • Si vous avez besoin d’un accompagnement plus global (performance, SEO, refonte, liaison ERP, etc.) :
    👉 notre équipe spécialisée en Développement prestashop et Développement addons est là pour vous.

Envie de remettre vos stocks d’aplomb et de dormir un peu plus tranquille la nuit ?
Contactez Phenix Info, votre partenaire Prestashop & web à Lyon,et on regarde ensemble comment sécuriser définitivement votre gestion de stock.

Résumez ou partagez cet article :

Votre projet avec Phenix Info

Envie de créer votre propre site internet ?

Faites confiance à nos experts pour vous créer un site web qui vous ressemble et répondant à vos besoins.
Site e-commerce ou site vitrine, artisan, architecte, santé, éducation, ou autre, notre équipe relève tous les défis !

Démarrer mon projet

Vous avez une idée ou un projet de création de site web ? Remplissez ce formulaire, et nous vous contacterons rapidement.

Les champs marqués d’un astérisque (*) sont obligatoires.

Parlez-nous de vous :
Vous êtes intéressé par* :
Parlez-nous de votre projet* :