Kurz erklärt
Nutzeraktionen (z. B. “In den Warenkorb legen”) werden bei fehlender Internetverbindung nicht verworfen, sondern lokal im Browser zwischengespeichert und automatisch nachgeholt, sobald die Verbindung wieder da ist.
Genauer
IndexedDB (statt localStorage) wird genutzt, weil ein Service Worker im Hintergrund darauf zugreifen können muss, auch wenn die eigentliche Seite gar nicht geöffnet ist — localStorage ist aus dem Service-Worker-Kontext heraus nicht erreichbar. Die Background Sync API (nur Chrome/Edge/Android) erlaubt dem Service Worker, das Nachholen auch anzustoßen, wenn die Seite geschlossen ist; als universeller Fallback (funktioniert auch auf Safari/iOS) dient zusätzlich ein einfacher 'online'-Browser-Event-Listener.