Sari la conținut

WooCommerce: „Coșul tău este gol” după adăugarea produselor

  • De WooCentury
  • Actualizat
  • 2 min de citit

Eroarea „Coșul tău este gol” („Your cart is currently empty”) apare de obicei când pagina de coș e servită din cache sau când un CDN blochează cookie-urile de sesiune WooCommerce. Semnul clasic: ca administrator, coșul funcționează, dar într-o fereastră privată sau pe alt dispozitiv rămâne gol. Mai rar, cauza e un conflict de pluginuri, o setare greșită de domeniu sau un tabel de bază de date stricat după migrare.

Primul pas: verifică starea WooCommerce

Intră în WooCommerce → Stare. Orice e marcat cu roșu (pagini lipsă, tabele lipsă, versiuni incompatibile) trebuie rezolvat înainte de orice altceva.

Soluția 1: exclude paginile WooCommerce de la cache

Paginile Coș, Finalizare comandă și Contul meu nu trebuie puse niciodată în cache. Majoritatea pluginurilor de cache (LiteSpeed Cache, WP Rocket, W3 Total Cache) le exclud automat, dar o setare personalizată le poate include din greșeală. După ce le excluzi, golește cache-ul site-ului și al browserului și testează dintr-o fereastră privată.

Exclude de la cache și cookie-urile woocommerce_items_in_cart, woocommerce_cart_hash și wp_woocommerce_session_*.

Soluția 2: configurează CDN-ul (Cloudflare, CloudFront etc.)

Un CDN care pune în cache pagini HTML poate „înghiți” cookie-urile de sesiune. Pe Cloudflare, creează o regulă de cache care ocolește cache-ul (Bypass) pentru /cos/*, /checkout/*, /contul-meu/* (sau slug-urile tale) și pentru cererile care au cookie-ul wp_woocommerce_session_.

Pe AWS CloudFront:

  1. Deschide distribuția asociată site-ului și intră în fila Behaviors.
  2. Editează comportamentul Default (*).
  3. În politica de cache, adaugă în lista de cookie-uri transmise wp_woocommerce_session_*.
Cookie-ul wp_woocommerce_session în CloudFront
Cookie-ul de sesiune WooCommerce adăugat în CloudFront

Recomandat: adaugă și woocommerce_items_in_cart*, woocommerce_cart_hash*, woocommerce_recently_viewed* și wp-resetpass*. Așteaptă câteva minute să se propage și testează din nou.

Soluția 3: alte cauze și verificări

  1. Un plugin instalat recent: dezactivează-l, golește cache-ul și testează. Dacă nu știi care e, lasă activ doar WooCommerce și reactivează pluginurile pe rând.
  2. Conflict cu tema: treci temporar pe o temă standard (Storefront sau o temă „Twenty”). Dacă merge, problema e în temă.
  3. Domeniu cu și fără www: în Setări → General, adresa WordPress și adresa site-ului trebuie să fie identice. O diferență între www și fără www pierde cookie-urile la redirecționare.
  4. Pluginuri de traducere (WPML, Polylang etc.): paginile Coș și Checkout trebuie traduse și setate pentru fiecare limbă.
  5. Endpoint-uri fără spații: în WooCommerce → Setări → Avansat folosește order-pay, nu „order pay”.
  6. Baza de date după migrare: tabelul wp_woocommerce_sessions trebuie să aibă cheie primară cu AUTO_INCREMENT. Unele migrări pierd această setare.
  7. Butoane AJAX: verifică în WooCommerce → Setări → Produse opțiunea „Activează butoanele AJAX de adăugare în coș”.

Ultima soluție: recreează paginile WooCommerce

Dacă nimic nu funcționează, șterge paginile Coș și Finalizare comandă și recreează-le din WooCommerce → Stare → Unelte → Creează paginile implicite WooCommerce. Apoi setează-le din nou în WooCommerce → Setări → Avansat.

Probleme înrudite: mini-coșul care nu se actualizează și plăți eșuate („pending payment to failed”). Dacă magazinul îți aduce bani, planul de mentenanță WooCommerce include o comandă de test după fiecare actualizare.