Synchronizace e-shopu se skladovým a účetním systémem patří mezi nejčastěji nedoceněné části e-commerce projektů. Špatně navržená integrace vede k duplicitním objednávkám, nesedícím skladovým stavům, ručnímu přepisování dat a v krajních případech k účetním nesrovnalostem, které musí řešit auditor.
Podíváme se na typické patterny, klasické pasti a osvědčené přístupy, které jsme aplikovali na desítkách integrací mezi Shoptetem, Shopify, custom e-shopy a ERP systémy jako Pohoda, Helios, Money S5 nebo Microsoft Business Central.
Dobrá integrace není o tom, jak rychle data tečou. Je o tom, co se stane, když něco selže — a to obvykle selže o víkendu před Black Friday.
Klíčové rozhodnutí na začátku: synchronní vs. asynchronní komunikace. Synchronní (e-shop volá ERP v reálném čase) je jednoduché na začátku, ale jakmile ERP spadne nebo zpomalí, padá s ním i frontend. Asynchronní přes message queue (RabbitMQ, Redis Streams, Kafka) je odolnější — události se ukládají, retry je automatický, pořadí zachované.
Idempotence: vaše nejlepší přítelkyně
Druhý zlatý princip je idempotence. Každá zpráva musí být zpracovatelná opakovaně bez vedlejšího efektu. „Zaplaceno 1 200 Kč na fakturu č. 2024/0123" musí jít přijít desetkrát a saldo se nesmí změnit. Bez idempotence se po prvním network glitchi rozsynchronizujete a víkend ztrávíte forensikou v MySQL.
- Mapujte ID-čka oboustranně (e-shop ID ↔ ERP ID) v perzistentní mapping tabulce
- Pro každou událost generujte stable correlation ID — bez něj nelze trasovat chyby
- Implementujte „outbox pattern" — události se zapisují do DB ve stejné transakci jako business data
- Sledujte lag fronty + alerting (Slack/PagerDuty) když překročí prah
- Webhooks z platebních bran (Stripe, GoPay) zpracovávejte přes idempotency key
- Reconciliation joby běží 1× denně a hlásí každou nesrovnalost
ERP integrace není projekt na 2 týdny, ale infrastruktura na 5–10 let. Vyplatí se investovat do robustního návrhu, observability a testovacího prostředí s realistickým objemem dat. Pak Vám integrace bude tiše pracovat na pozadí a Vy budete řešit business, ne data drift.












