Free cookie consent management tool by TermsFeedAktualizacja preferencji plików cookie

Pourquoi le checkout dans Magento affiche-t-il un écran blanc avec de grands paniers (et comment le corriger) ?

7 mai 2026
Pourquoi le checkout dans Magento affiche-t-il un écran blanc avec de grands paniers (et comment le corriger) ?

Magento 2 – écran blanc au checkout (white screen of death) avec un grand panier

Imaginez un client qui ajoute plusieurs dizaines de produits à son panier… passe au checkout… et, au lieu de la page de paiement, voit un écran blanc.
Cela vous semble familier ? Dans Magento 2.4.x, ce problème n’est pas rare – et nous venons justement de le traiter sur un projet réel.

Symptômes

  • Le checkout fonctionnait correctement avec des paniers plus petits.

  • Avec plusieurs dizaines de produits – page blanche.

  • Aucun message ni erreur dans les logs.

  • De façon aléatoire, le checkout fonctionnait, puis, quelques instants plus tard, le même panier affichait une page vide.

Piste n° 1 – Redis ?

Les premiers soupçons se sont portés sur Redis : verrous de session, concurrence, timeouts.

Après la désactivation de Redis, les sessions se sont effectivement un peu stabilisées, mais le problème n’a absolument pas disparu.

Piste n° 2 – shipping.phtml

ddd

En déboguant pas à pas, nous sommes arrivés au fichier :

vendor/magento/module-checkout/view/frontend/templates/cart/shipping.phtml

qui chargeait un JSON gigantesque :

window.checkoutConfig = {$serializedCheckoutConfig};

Source du problème – quoteItemData

Il s’est avéré que le coupable était cette ligne dans DefaultConfigProvider :

$output['quoteItemData'] = $quoteItemData;

c’est-à-dire toutes les données relatives aux produits dans le panier. Et à cet endroit, Magento chargeait notamment custom_attributes_serializable, qui pouvait peser… des centaines de MB.

Solution

Le correctif le plus simple : supprimer les données inutiles avant qu’elles n’arrivent dans checkoutConfig.

Nous l’avons fait avec un plugin sur QuoteItem::setProduct() :

public function afterSetProduct( MagentoQuoteModelQuoteItem $subject, $result, $product) { // główny winowajca $subject->setData('custom_attributes_serializable', null); return $result;}

Résultat ?

  • Le checkout a commencé à fonctionner de manière stable, même avec de grands paniers.

  • La charge utile JSON est passée de plusieurs MB, voire d’une dizaine de MB, à quelques centaines de KB.

Conclusions

  • Dans Magento 2, le checkout peut être très sensible à ce qui arrive dans quoteItemData.

  • Si vous rencontrez des problèmes d’écrans blancs dans le panier/checkout, vérifiez la taille de custom_attributes_serializable.

  • Parfois, un petit plugin suffit à sauver la stabilité de toute la boutique.

Avez-vous déjà vécu des situations similaires avec le checkout ? Quels autres cas étranges ont déjà fait planter votre panier dans Magento ? Partagez-les en commentaire

Produits