{"id":90026,"date":"2026-10-05T09:10:00","date_gmt":"2026-10-05T07:10:00","guid":{"rendered":"https:\/\/codescriptum.pl\/blog\/koszyk-woocommerce-nie-aktualizuje-sie\/"},"modified":"2026-10-05T09:10:00","modified_gmt":"2026-10-05T07:10:00","slug":"koszyk-woocommerce-nie-aktualizuje-sie","status":"publish","type":"post","link":"https:\/\/codescriptum.pl\/blog\/koszyk-woocommerce-nie-aktualizuje-sie\/","title":{"rendered":"Koszyk WooCommerce nie aktualizuje si\u0119 po dodaniu produktu - przyczyny i rozwi\u0105zanie"},"content":{"rendered":"<h2>Jak to wygl\u0105da<\/h2>\n<p>Klient klika \u201eDodaj do koszyka\u201d, widzi komunikat o dodaniu produktu, ale licznik w nag\u0142\u00f3wku si\u0119 nie zmienia. Po przej\u015bciu do koszyka jest on pusty albo zawiera produkty, kt\u00f3re klient doda\u0142 wcze\u015bniej. Czasem problem dotyczy tylko telefonu albo trybu incognito, a w panelu administratora wszystko dzia\u0142a, bo zalogowany administrator omija cache.<\/p>\n<ul>\n<li>licznik koszyka w nag\u0142\u00f3wku pokazuje 0 albo star\u0105 liczb\u0119,<\/li>\n<li>produkt \u201eznika\u201d z koszyka po od\u015bwie\u017ceniu strony,<\/li>\n<li>r\u00f3\u017cni klienci widz\u0105 ten sam koszyk (najpowa\u017cniejszy wariant).<\/li>\n<\/ul>\n<h2>Dlaczego tak si\u0119 dzieje<\/h2>\n<p>WooCommerce zapami\u0119tuje koszyk w sesji, kt\u00f3r\u0105 rozpoznaje po ciasteczku w przegl\u0105darce klienta. Wtyczka cache albo CDN zapisuje gotowy HTML strony i podaje go kolejnym osobom. Je\u015bli do cache trafi strona koszyka albo nag\u0142\u00f3wek z licznikiem, klient dostaje cudz\u0105 albo star\u0105 wersj\u0119 zamiast swojego koszyka.<\/p>\n<h3>Cache serwera i wtyczki cache<\/h3>\n<p>Strony <code>\/koszyk\/<\/code>, <code>\/zamowienie\/<\/code> i <code>\/moje-konto\/<\/code> oraz \u017c\u0105dania z ciasteczkami <code>woocommerce_items_in_cart<\/code>, <code>woocommerce_cart_hash<\/code> i <code>wp_woocommerce_session_<\/code> nie mog\u0105 by\u0107 zapisywane w cache. Wi\u0119kszo\u015b\u0107 wtyczek cache ma na to gotowe ustawienia, ale cache serwera lub CDN (np. Cloudflare z regu\u0142\u0105 \u201ecache everything\u201d) cz\u0119sto o nich nie wie.<\/p>\n<h3>Dwa adresy sklepu<\/h3>\n<p>Je\u015bli sklep dzia\u0142a jednocze\u015bnie pod adresem z www i bez www albo pod http i https, ciasteczko sesji jest zapisane dla jednego adresu, a klient przechodzi na drugi. Wtedy koszyk wygl\u0105da na pusty.<\/p>\n<h3>Skrypty i optymalizacja JavaScript<\/h3>\n<p>Licznik koszyka od\u015bwie\u017ca skrypt WooCommerce. Op\u00f3\u017anianie, \u0142\u0105czenie albo usuwanie skrypt\u00f3w przez wtyczki optymalizacyjne potrafi go wy\u0142\u0105czy\u0107, a b\u0142\u0105d innego skryptu zatrzymuje wszystkie kolejne.<\/p>\n<table>\n<thead>\n<tr>\n<th>Objaw<\/th>\n<th>Najcz\u0119stsza przyczyna<\/th>\n<th>Gdzie sprawdzi\u0107<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Pusty koszyk po od\u015bwie\u017ceniu<\/td>\n<td>Cache strony koszyka<\/td>\n<td>Ustawienia wtyczki cache, regu\u0142y CDN<\/td>\n<\/tr>\n<tr>\n<td>Stary licznik w nag\u0142\u00f3wku<\/td>\n<td>Cache nag\u0142\u00f3wka albo op\u00f3\u017aniony skrypt<\/td>\n<td>Optymalizacja JS, konsola przegl\u0105darki<\/td>\n<\/tr>\n<tr>\n<td>Koszyk znika po przej\u015bciu na inn\u0105 stron\u0119<\/td>\n<td>Dwa adresy sklepu<\/td>\n<td>Adres witryny, przekierowania 301<\/td>\n<\/tr>\n<tr>\n<td>Cudzy koszyk<\/td>\n<td>Cache stron dla wszystkich u\u017cytkownik\u00f3w<\/td>\n<td>Cache serwera i CDN (pilne)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"csb-note csb-note--warn\">\n<p>Je\u015bli klienci widz\u0105 cudze koszyki albo dane, wy\u0142\u0105cz cache serwera i CDN od razu, a dopiero potem szukaj w\u0142a\u015bciwej konfiguracji. To problem bezpiecze\u0144stwa danych, a nie tylko sprzeda\u017cy.<\/p>\n<\/div>\n<p>Ten problem jest jednym z naszej listy <a href=\"\/blog\/100-problemow-woocommerce\/\">100 problem\u00f3w z WooCommerce<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jak to wygl\u0105da Klient klika \u201eDodaj do koszyka\u201d, widzi komunikat o dodaniu produktu, ale licznik w nag\u0142\u00f3wku si\u0119 nie zmienia. Po przej\u015bciu do koszyka jest on pusty albo zawiera produkty,\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[],"class_list":["post-90026","post","type-post","status-publish","format-standard","hentry","category-sklepy-internetowe"],"_links":{"self":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/posts\/90026","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/comments?post=90026"}],"version-history":[{"count":0,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/posts\/90026\/revisions"}],"wp:attachment":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/media?parent=90026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/categories?post=90026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/tags?post=90026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}