Praktický návod
Jak navrhnout stavový systém objednávek v e-shopu
Aby objednávka neskákala chaoticky mezi stavy. Nejdřív popiš pravidla na papír, pak je převeď do aplikace.
Nejdřív stručně
Proč nestačí jedno volné políčko se stavem?
Stavový systém říká, v jakém kroku objednávka právě je a kam smí pokračovat. Nejde jen o názvy stavů. Důležitá jsou pravidla mezi nimi.
Například objednávka může čekat na platbu, být zaplacená, odeslaná nebo zrušená. Neměla by se ale omylem vrátit z odeslané rovnou do čekání na platbu.
Připrav si
Co si ujasnit předem
Nezačínej knihovnou ani tabulkou v databázi. Začni tím, co se s objednávkou skutečně děje.
- Seznam reálných stavů. Použij slova, kterým rozumí zákaznická podpora i sklad.
- Kdo smí změnu provést: zákazník, administrátor, sklad nebo automatická platba.
- Co se má stát po každé změně. Třeba rezervace zásob, e-mail nebo předání dopravci.
- Kde budeš ukládat aktuální stav i historii. Obvykle do databáze.
Krok 1
Navrhni pravidla po malých krocích
Cílem není dlouhý seznam výjimek. Cílem je pár srozumitelných stavů a jasné přechody mezi nimi.
1. Napiš stavy, ne technické detaily
- Začni jednoduchým seznamem, například nová, čeká na platbu, zaplacená, odeslaná a zrušená.
- Nesnaž se hned pokrýt každou výjimku. Neobvyklý případ se dá doplnit později, až mu budeš rozumět.
- Odděl stav platby od stavu doručení, pokud se mění nezávisle. Jinak brzy vzniknou matoucí kombinace.
2. Urči povolené přechody
- Ke každému stavu napiš, kam může objednávka dál. Třeba z čekání na platbu do zaplacené nebo zrušené.
- Nepovoluj změnu jen proto, že ji umíš zapsat do políčka. Aplikace má odmítnout krok, který nedává smysl.
- Pravidla udržuj na jednom místě. Ne roztroušená v kontroleru, administraci a importu.
3. Ulož změnu i její historii
- Při přechodu zapiš nový stav, čas a důvod změny. Hodí se i informace, kdo ji spustil.
- Následnou akci prováděj až po úspěšném uložení změny. Například e-mail o odeslání až po označení objednávky jako odeslané.
- Díky historii později snadno zjistíš, proč se objednávka dostala do konkrétního stavu.
Krok 2
Ověř pravidla na konkrétní objednávce
Projeď běžnou cestu i jednu chybu. Teprve pak budeš vědět, že pravidla nejsou jen na papíře.
-
Projdi běžný scénář
Vytvoř testovací objednávku a změň ji od nové až po odeslanou. U každého kroku zkontroluj aktuální stav i historii.
-
Zkus zakázaný skok
Zkus třeba označit novou objednávku rovnou jako odeslanou. Aplikace má změnu odmítnout a srozumitelně vysvětlit proč.
-
Zkontroluj navazující akci
Ověř, že e-mail, sklad nebo jiná návazná práce reaguje jen na správný přechod. Nemá se spustit při každém uložení objednávky.
Když to zlobí
Nejčastější chyby
Stav lze přepsat odkudkoliv
Změnu nenechávej volně zapisovat ve formuláři ani v každém kusu kódu. Vytvoř jednu cestu pro přechod, která zkontroluje pravidla.
Jeden stav míchá platbu, dopravu a reklamaci
Rozděl nezávislé oblasti. Stav platby nemusí být stejný jako stav doručení. V opačném případě rychle přibývá zbytečných kombinací.
Nevíš, kdo stav změnil
Ukládej historii přechodů. Zapiš starý a nový stav, čas, zdroj změny a případně důvod. Při řešení reklamace ti to ušetří hodiny.
Dvě změny přijdou ve stejnou chvíli
Při ukládání chraň data před souběhem. Dobře nastavená databázová transakce pomůže, aby se změna uložila celá, nebo vůbec.
Hotovo
Objednávka má jasnou cestu.
Začni s několika stavy a přechody, které opravdu používáš. Až potom doplňuj další pravidla podle reálných situací.