Objednávky¶
Stav k 2026-06-21
Tabulky¶
eshop_objednavky — hlavní tabulka¶
Každá objednávka má dvě čísla:
| Pole | Popis |
|---|---|
cislo_objednavky |
interní číslo ve formátu {pohoda_rada}{pohoda_poradi} (např. FV50001) nebo {kod_rok}-{kod_poradi} |
cislo_objednavky_jen_cislo |
jen číslice — variabilní symbol pro platbu |
pohoda_rada |
řada v Pohodě (FV, ZF, …) |
pohoda_poradi |
pořadí v rámci řady, startuje od 50001 |
status |
stav objednávky (viz níže) |
exportovano |
příznak exportu do Pohody |
zasilka |
způsob dopravy (název z eshop_platebni_metody) |
osobni_odber |
1 = osobní odběr / výdejní místo |
mena |
CZK nebo EUR |
kurz |
kurz EUR v době objednávky |
bez_dph |
SK B2B zákazníci s DIČ — faktura bez DPH |
jazyk |
jazyk zákazníka při objednávce |
celkovy_zisk |
zisk (dopočítáno z položek) |
neprectena |
1 = nová, nepřečtená objednávka v adminu |
Adresy: dvě sady jako u zákazníka — fakturační a doručovací. Kopírují se z registrace v době objednávky (snapshot).
Stavy objednávky (status)¶
| Kód | Název | Popis |
|---|---|---|
O |
Objednáno | výchozí stav po přijetí |
P |
Přijato | potvrzeno obsluhou |
Z |
Zjišťování dostupnosti | čeká se na potvrzení skladu/dodavatele |
V |
Vyřízeno | odesláno zákazníkovi |
S |
Stornováno | zrušená objednávka |
Změna statusu = záznam v eshop_objednavky_stavy + volitelný e-mail/SMS zákazníkovi.
eshop_objednavky_polozky — položky¶
| Pole | Popis |
|---|---|
produkt_id |
kód produktu (varchar — může být variant kód) |
varianta_id |
id varianty (0 = bez varianty) |
cena |
cena za kus v době objednávky (snapshot) |
cena_typ |
typ ceny: prázdné / AKCE / VYPR (výprodej) / NARO (narozeniny) |
sleva |
hodnota slevy z kupónu |
pridat_do_pohody |
1 = tato položka se exportuje do Pohody |
marze, zisk |
marže a zisk v Kč (dopočítáno při vytvoření) |
cena_nakup |
nákupní cena v době objednávky |
eshop_objednavky_stavy — log stavů¶
Každá změna stavu = řádek: stav (textový popis), cas_zmeny, uzivatel (kdo změnil).
eshop_objednavky_komunikace — vzory zpráv ke stavům¶
Šablony e-mailů a SMS vázané na stav_id. Při změně stavu se odešle příslušný vzor.
eshop_kosik — dočasný košík¶
Session-based košík. Každá položka = řádek se session ID, user_id, cenou, množstvím, variantou, barvou, PHE poplatkem, voucher jmény. Při dokončení objednávky se košík smaže.
eshop_order_draft — JSON draft objednávky¶
Uložený stav rozdělaného nákupního procesu (JSON). Umožňuje pokračovat v objednávce po návratu. Vázáno na session_id nebo user_id.
eshop_platebni_metody — platební a dopravní metody¶
Jedna tabulka pro oboje (platba i doprava). Pole cena (CZK) a eur (EUR) — přímé EUR ceny, ne konverze. Překlady názvů a popisů pro všechny jazykové mutace.
Číslo objednávky a Pohoda¶
Číslo se přiděluje při finalizaci objednávky:
- Systém zjistí Pohoda řadu (
pohoda_rada) podle skladu / pobočky MAX(pohoda_poradi) + 1— se zámkem (3 pokusy) proti race condition- Startuje od
50001 cislo_objednavky = pohoda_rada + pohoda_poradi(např.FV50001)cislo_objednavky_jen_cislo= jen číslice, bez písmen řady = variabilní symbol
Export do Pohody¶
Viz pohoda-export.md — vlastní stránka.
Dopad na migraci do Sylius¶
Celý nákupní proces bude jiný
Sylius má vlastní checkout flow, košík, stavy objednávek a platební brány. Žádná z těchto tabulek se přímo nemigruje — migrace se týká pouze historických objednávek jako archiv.
Čísla objednávek a Pohoda řady
Sylius generuje čísla objednávek vlastním způsobem. Propojení na Pohoda řady (FV, ZF, …) musí být implementováno jako custom extension nebo přes API adaptér.
Položky — snapshot cen
eshop_objednavky_polozky ukládá kompletní snapshot ceny, marže, zisku v době objednávky. Sylius OrderItem taky snapshottuje cenu — ale marže/zisk je nutno řešit custom (Sylius to nativně neukládá).
Recyklační poplatek (RP/PHE) a montáž
Košík obsahuje položky s recyklačním poplatkem — v kódu phe_kod, phe_poplatek (PHE = RP = recyklační poplatek). A montáží (cena_montaze). V Sylius se toto řeší jako OrderItemUnit adjustments nebo separátní položky — nutno navrhnout.
Historické objednávky zákazníků
Zákazníci očekávají přístup k historii objednávek po migraci. To znamená buď:
- Import do Sylius — komplexní mapování na
Order/OrderItem/OrderItemUnit; schema je výrazně odlišné, marže/zisk/PHE nemají přímý ekvivalent - Read-only archiv — historické objednávky zůstanou v oddělené DB nebo admin pohledu, v Sylius zákazník uvidí jen objednávky od data migrace
Toto rozhodnutí musí padnout před migrací — ovlivňuje architekturu zákaznické sekce i rozsah migračního skriptu.