# Zählerstände des Altsystems (Shopware 6.6), gesichert am 25.09.2026

Das Altsystem ist außer Betrieb. Seine Nummernkreise lagen in **Redis db3**
und *nicht* in der Datenbank: bei Redis-Speicherung liest Shopware den Zähler
einmal aus `number_range_state` und schreibt danach nur noch nach Redis. Die
Werte in der Datenbank des Altsystems sind deshalb veraltet und nicht zu
gebrauchen.

Vor dem Leeren der Redis-Datenbanken des Altsystems abgelesen:

| Typ        | Redis db3 (maßgeblich) | Datenbank (veraltet) | `start` im Altsystem |
|------------|------------------------|----------------------|----------------------|
| `order`    | **12550**              | 10008                | 12546                |
| `customer` | **10003**              | 10025                | 10000                |

Nummernkreis-IDs des Altsystems (im neuen Shop gibt es sie nicht):

    order     019500535426709a84aab43a0e4d9ec6
    customer  019500535426709a84aab43a0f382903

## Warum das wichtig ist

Der alte Shop hat seine Bestellnummern bei 12546 begonnen – offenbar in
Fortsetzung eines noch älteren Stands – und ist bis 12550 gelaufen. Es gibt
also **echte Bestellungen mit den Nummern 12546 bis 12550**.

Der neue Shop steht auf `start = 10000` und hat als Zählerstand 10008 aus den
Testbestellungen der Entwicklung. Ohne Eingriff vergibt er als erste echte
Bestellnummer die **10009** und läuft nach gut 2.500 Bestellungen genau in
den belegten Bereich hinein. Doppelte Bestellnummern lassen sich hinterher
nicht mehr auseinandersortieren; das ist ein Buchhaltungsproblem, kein
technisches.

## Erledigt am 25.09.2026

**1. Deutlicher Schnitt bei 20000.** `start` steht für `order`, `customer` und
alle vier Belegarten auf 20000. Am Nummernkreis ist damit sofort erkennbar,
aus welchem System ein Beleg stammt. Nur `start` wurde gesetzt, nicht der
Zählerstand: `IncrementSqlStorage` vergibt `MAX(last_value + 1, start)`, der
Zähler springt beim ersten Zugriff selbst hoch.

Die Belegarten waren dabei der dringendere Fall: das Altsystem hat die
Rechnung 1000 ausgestellt, der neue Shop hätte mit derselben Nummer
angefangen. Rechnungsnummern müssen eindeutig sein.

Steht als wiederholbarer Schritt in `prod-anpassungen.sql`.

**2. Die Zähler liegen wieder in der Datenbank.** In `redis.yaml` ist der
`number_range`-Block entfernt (Vorgabe ist `mysql`), Index 9 bleibt frei.
Galera hält den Zähler auf drei Knoten. Ein Redis-Verlust kostet damit
Sessions, Warenkörbe und Cache – alles ersetzbar – aber keine Belegnummern.
