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

De ce checkout-ul din Magento afișează un ecran alb la coșuri mari (și cum îl repari)?

8 mai 2026
De ce checkout-ul din Magento afișează un ecran alb la coșuri mari (și cum îl repari)?

Magento 2 – ecran alb în checkout (white screen of death) la un coș mare

Imaginează-ți un client care adaugă câteva zeci de produse în coș… trece la checkout… iar în loc de finalizarea comenzii vede un ecran alb.
Sună cunoscut? În Magento 2.4.x nu este o problemă rară – iar noi tocmai am trecut prin ea într-un proiect real.

Simptome

  • Checkout-ul funcționa corect cu coșuri mai mici.

  • La câteva zeci de produse – pagină albă.

  • În loguri nu apăreau mesaje sau erori.

  • Aleatoriu, checkout-ul funcționa, iar după un moment același coș afișa o pagină goală.

Pista numărul 1 – Redis?

Primele suspiciuni au fost legate de Redis: lock-uri de sesiune, concurrency, timeout-uri.

După dezactivarea Redis, sesiunile s-au mai stabilizat într-adevăr puțin, dar problema nu a dispărut deloc.

Pista numărul 2 – shipping.phtml

ddd

Debugând pas cu pas, am ajuns la fișierul:

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

care încărca un JSON uriaș:

window.checkoutConfig = {$serializedCheckoutConfig};

Sursa problemei – quoteItemData

S-a dovedit că vinovatul era linia din DefaultConfigProvider:

$output['quoteItemData'] = $quoteItemData;

adică toate datele despre produsele din coș. Iar în acest punct Magento încărca, printre altele, custom_attributes_serializable, care putea ajunge să cântărească… sute de MB.

Soluția

Cea mai simplă remediere: să elimini datele inutile înainte ca acestea să ajungă în checkoutConfig.

Am făcut acest lucru cu un plugin pe QuoteItem::setProduct():

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

Rezultatul?

  • Checkout-ul a început să funcționeze stabil, chiar și cu coșuri mari.

  • Payload-ul JSON a scăzut de la câțiva/câteva zeci de MB la câteva sute de KB.

Concluzii

  • În Magento 2, checkout-ul poate fi foarte sensibil la ceea ce ajunge în quoteItemData.

  • Dacă aveți probleme cu ecrane albe în coș/checkout – verificați dimensiunea custom_attributes_serializable.

  • Uneori este suficient un plugin mic pentru a salva stabilitatea întregului magazin.

Ați avut experiențe similare cu checkout-ul? Ce alte cazuri ciudate v-au dat peste cap coșul în Magento? Împărtășiți-le în comentarii

Produse