Initial assessment without passwords Quote before intervention One accountable specialist from start to finish

WooCommerce Critical

WooCommerce Cart Empties at Checkout: Sessions, Cookies and Cache

An empty cart at checkout usually means the WooCommerce session cookie or cart data was lost between requests. Trace the transition.

What matters first: The product was added, but the session used by checkout does not contain the same cart. The break is usually cookie scope, full-page caching, object-cache inconsistency or a domain/scheme change.

Prove where the cart session disappears

Refreshing settings can mask the issue briefly, but the browser cookies and server session key show whether the customer changed identity between cart and checkout.

Cookies, host and redirect evidence to capture

  • Record the cart and checkout URLs, host, scheme and redirect chain.
  • Inspect WooCommerce session and cart cookies before and after the transition.
  • Test logged out with page/CDN cache bypassed.
  • Check object-cache, load-balanced nodes and database session storage.

Cache and session-layer failure modes

  • Cached cart or checkout: A shared cached response ignores the visitor’s private cart.
  • Cookie domain mismatch: The cart belongs to www, non-www, HTTP or another subdomain.
  • Object-cache inconsistency: Different nodes or prefixes return different session state.
  • Aggressive cookie rules: Consent or optimisation code removes WooCommerce cookies.

Restore one canonical checkout path

  1. Exclude cart, checkout, account and WooCommerce AJAX routes from full-page caching.
  2. Align canonical domain and HTTPS redirects to one stable host.
  3. Verify shared session storage and cache prefixes across every web node.
  4. Repeat product-to-checkout journeys in clean desktop and mobile sessions.

Cached response or cookie-domain mismatch?

A cached checkout and a cookie-domain mismatch can both present as an empty cart, but they leave different traces. If the browser keeps the same WooCommerce session cookie while the response ignores it, inspect page/CDN caching and shared session storage. If the cookie changes or disappears across www, non-www, HTTP/HTTPS or a subdomain redirect, fix host and cookie scope first.

Follow the customer journey, not an isolated page. If the request fails before the item enters the cart, start with Add to cart diagnostics. If the cart survives checkout but the final confirmation fails after payment, move to the order-received endpoint. This keeps session faults separate from later payment and rendering failures.

Avoid the all-cache-off workaround

Do not disable every cache layer permanently. Identify which layer caches private state and keep safe caching elsewhere.

Test the repaired session journey

  • A logged-out cart persists through cart, checkout and payment selection.
  • Cookies remain scoped to the canonical host and secure scheme.
  • Separate visitors never receive each other’s cart state.

The repair is proven when a logged-out cart survives cart, checkout and payment selection on the canonical host, separate visitors never share private cart state, and the relevant WooCommerce cookies remain stable across the full journey.

WP REPAIR INCIDENT STANDARD

Reconstruct the incident before fixing it

Refreshing settings can mask the issue briefly, but the browser cookies and server session key show whether the customer changed identity between cart and checkout.

WP RepairDiagnostic model
1Browser2Session3Gateway4Order
Follow the chain until you find the first point that stops behaving as expected.
  1. 1

    Record the cart and checkout URLs, host, scheme and redirect chain.

  2. 2

    Inspect WooCommerce session and cart cookies before and after the transition.

  3. 3

    Test logged out with page/CDN cache bypassed.

  4. 4

    Check object-cache, load-balanced nodes and database session storage.

What must be verified

  • A logged-out cart persists through cart, checkout and payment selection.
  • Cookies remain scoped to the canonical host and secure scheme.
  • Separate visitors never receive each other’s cart state.

ABOUT THIS SYMPTOM

Frequently asked questions about this guide.

If refreshing WooCommerce settings temporarily fixes an empty cart, is the issue resolved?+

No, refreshing settings can mask the symptom briefly without addressing the cause. The real test is comparing browser cookies and the server session key between the cart and checkout steps to see whether the customer's identity actually changed between the two.

Does switching from www to non-www (or HTTP to HTTPS) really explain a lost cart?+

Yes. WooCommerce cart and session cookies are scoped to a specific host and scheme, so if the cart page and checkout page are served from different domains, subdomains or protocols, the cart cookie set on one won't be visible on the other, effectively emptying the cart.

Should full-page caching be disabled site-wide to fix this?+

No, this is flagged as the wrong fix. Disabling every cache layer permanently is unnecessary; instead identify which specific layer is caching private cart or checkout state and exclude only cart, checkout, account and WooCommerce AJAX routes from full-page caching, keeping safe caching everywhere else.

Could a cookie-consent or optimization plugin be the actual cause rather than caching?+

Yes. Aggressive cookie rules from consent-management or optimization tools can remove WooCommerce's own session and cart cookies, producing the same symptom as a caching or domain problem, which is why it is listed as one of the distinct root causes to check separately.

BEFORE YOU SEND THE REQUEST

Frequently asked questions.

Do you ask for passwords in the form?+

No. The public form never requests access. Secure credentials are requested only after the scope and quote are approved.

Who reviews the incident?+

The request goes to Jordi Ensenyat, founder of Code Barcelona and a WordPress specialist with more than 15 years of experience.

Is anything changed before the quote?+

No. Visible symptoms and scope are reviewed first. Intervention begins after approval and with a rollback path prepared.

Do you work internationally?+

Yes. WP Repair handles WordPress and WooCommerce incidents in English and Spanish through a remote service.

Assess my incident↗