Der Inhalt des Warenkorbs wird nicht im Cookie gespeichert, sondern in der Session. Die Session wird zerstört, wenn du den Browser schließt.
Das ist nicht ganz richtig. Der Warenkorb wird in der Session gespeichert, das stimmt - aber diese wird nicht zerstört wenn der Browser geschlossen wird. Die Sessiondaten liegen (idR in Form einer Textdatei) auf dem Server und werden vom GC (Garbage Collection) regelmäßig aufgeräumt (bei ungünstiger Konfiguration u.U. auch dann wenn der zugehörige Cookie eigentlich noch existiert und die Session noch benötigt würde!). Beim Schließen des Browsers wird lediglich das Cookie gelöscht womit die Session am Server nicht mehr zugeordnet werden kann und bei einem erneuten Besuch der Seite eine neue Session gestartet wird.
Ok, danke! Und warum wird die Session zerstört, wenn ich den Browser schließe? Wäre es nicht möglich, das Cookie im Browser sowie die Session auf dem Server länger zu speichern oder ist dies technisch nicht machbar?
Doch, sowohl Session als auch Cookie lassen sich auch länger speichern (durch Anpassen der Einstellungen session.gc_maxlifetime bzw. session.cookie_lifetime) - als Besucher einer Seite hast du da aber keinen Einfluss. Sessions sind eben so definiert dass sie nur bis zum Schließen des Browsers gültig sind und der Standardwert für cookie_lifetime ist eben 0 (also bis zum Schließen des Browsers).
Vorsicht, eine längere Laufzeit des Session-Cookies heißt u.U. dass es im Bezug auf die DSGVO in eine andere Kategorie fällt und du die Einwilligung des Besuchers brauchst - für Session-Cookies brauchst du die wohl nicht (keine Rechtsberatung, frag ggf. den Anwalt deines geringsten Misstrauens!).