====== MedusaJS ====== //Vytvořeno: **20.5.2026** | Aktualizováno: **~~LASTMOD~~**// [[https://github.com/medusajs/medusa|MedusaJS / Medusa]] je open-source headless commerce platforma a framework pro stavbu vlastních e-shopů, marketplace, B2B portálů nebo jiných commerce aplikací. Není to hotové klikací řešení typu Shoptet, ale vývojářský backend s adminem, API, commerce moduly a možností hlubokých úprav. ===== Licence a pricing ===== Medusa je podle [[https://github.com/medusajs/medusa/blob/develop/LICENSE|licence v repozitáři]] vydaná pod MIT licencí. To znamená, že ji lze používat i komerčně, upravovat, self-hostovat a stavět na ní vlastní produkt. Základní povinnost je zachovat licenční a copyright oznámení u distribuovaných částí softwaru. [[https://medusajs.com/pricing/|Pricing Medusy]] se netýká licence k open-source kódu, ale hlavně služby Medusa Cloud. Podle pricing stránky nejde o poplatek z obratu -- Medusa uvádí 0 % GMV fee, unlimited orders, products, sales channels a regions/currencies. Platí se za infrastrukturu a provozní služby. Medusa Cloud podle [[https://docs.medusajs.com/cloud|dokumentace ke Cloudu]] řeší hlavně: * hosting backendu, adminu a storefrontu, * managed PostgreSQL, Redis a S3/object storage, * deploye z GitHubu, * preview prostředí pro pull requesty, * automatické zálohy, * zero-downtime deployment, * autoscaling, * logy a monitoring, * Medusa Cache, * transactional emails, * podporu podle tarifu. Prakticky to znamená: open-source Medusu lze provozovat zdarma na vlastní infrastruktuře, ale Medusa Cloud dává smysl ve chvíli, kdy je důležitější rychlý a stabilní provoz než správa vlastní infrastruktury. ===== Kdy dává Medusa smysl ===== Medusa se hodí pro projekty, které potřebují vlastní commerce logiku a nestačí jim běžná krabicová e-shopová platforma. Typické příklady: * vlastní checkout, * B2B portál, * marketplace, * složitější ceníky, * vlastní produktová data, * integrace s ERP, PIM, CMS nebo skladem, * netypický fulfillment, * prodej digitálních produktů, * prodej kurzů, * vlastní administrační rozhraní nad commerce daty. Naopak pro jednoduchý e-shop bez výrazné custom logiky může být Medusa zbytečně vývojově náročná. V takovém případě může být praktičtější hotová platforma, kde se většina funkcí nakliká. ===== Jak Medusa funguje ===== Podle [[https://docs.medusajs.com/learn/advanced-development/architecture/overview|architektonického přehledu]] je Medusa headless commerce platforma. Storefront, admin dashboard nebo jiný klient komunikuje s backendem přes API. Základní vrstvy aplikace: - **API Routes** -- HTTP vrstva nad Express.js, přes kterou komunikuje storefront, admin nebo vlastní klient. - **Workflows** -- vrstva byznys logiky. Workflow skládá jednotlivé kroky a může obsahovat rollback/kompenzační logiku. - **Modules** -- doménové moduly pro produkty, košík, objednávky, platby, fulfillment, zákazníky a další oblasti. - **Data store** -- typicky PostgreSQL. Redis lze použít pro cache, eventy, locky nebo workflow engine. Zjednodušeně: Storefront / Admin / vlastní klient ↓ API routes ↓ Workflows ↓ Commerce modules / custom modules ↓ PostgreSQL + externí služby ===== Co je připravené po instalaci ===== Podle [[https://docs.medusajs.com/learn/installation|instalační dokumentace]] se lokální projekt vytvoří příkazem: npx create-medusa-app@latest my-medusa-store Volitelně lze rovnou přidat [[https://docs.medusajs.com/resources/nextjs-starter|Next.js Starter Storefront]]: npx create-medusa-app@latest --with-nextjs-starter Po instalaci je k dispozici Medusa backend a admin dashboard. Backend běží typicky na ''http%%://%%localhost:9000'', admin na ''http%%://%%localhost:9000/app'' a Next.js storefront na ''http%%://%%localhost:8000''. V základu Medusa poskytuje commerce moduly popsané v [[https://docs.medusajs.com/resources/commerce-modules|přehledu Commerce Modules]]. Patří sem například: * produkty, * varianty produktů, * ceny, * košík, * objednávky, * zákazníci, * měny, * regiony, * sklad a inventory, * platby, * fulfillment, * slevy a promotions, * API klíče, * uživatelé, * admin dashboard. ===== Custom data a vlastní produktový model ===== Medusa má vlastní produktový model přes Product Module. Podle [[https://docs.medusajs.com/resources/commerce-modules/product|dokumentace Product Module]] produkt podporuje varianty, options, organizaci přes kategorie/kolekce/tagy a cenové strategie. Pro vlastní produktová data jsou typické dvě možnosti. ==== Rozšíření produktů v Meduse ==== První možnost je použít produktový model Medusy a doplnit vlastní data přes metadata nebo vlastní modul. Příklad pro technický e-shop: Product: Baterie Pylontech US5000 Varianty: - standardní sada - sada s držákem Vlastní data: - kompatibilní měniče - kapacita - datasheet URL - záruční doba - doporučené použití Medusa v takovém případě řeší commerce část: produkt, variantu, cenu, sklad, košík, objednávku a zákazníka. Vlastní modul řeší doménová data navíc. ==== Externí produktová databáze ==== Druhá možnost je mít hlavní produktová data v ERP/PIM/CMS a Medusu používat jako commerce vrstvu. Vlastní workflow pak může produkty synchronizovat do Medusy nebo číst doplňková data z externího systému. ===== Workflows a custom logika ===== [[https://docs.medusajs.com/learn/fundamentals/workflows|Workflows]] jsou jedna z hlavních výhod Medusy. Workflow je série kroků, které dohromady provedou obchodní operaci. Na rozdíl od obyčejné funkce může workflow sledovat průběh kroků, definovat rollback logiku a lépe držet konzistenci při operacích přes více systémů. Příklad použití: Objednávka zaplacena ↓ vytvořit přístup zákazníkovi ↓ poslat e-mail ↓ synchronizovat data do CRM Pokud některý krok selže, workflow může mít kompenzační logiku pro vrácení předchozích kroků. ===== Použití pro e-shop na kurzy ===== Medusa se dá použít i pro prodej kurzů, ale je potřeba oddělit commerce část od LMS části. Medusa může řešit: * katalog kurzů, * varianty kurzů, * ceny, * slevy, * košík, * checkout, * platby, * zákaznické účty, * objednávky, * admin správu kurzů jako produktů, * automatické vytvoření přístupu po zaplacení. Sama o sobě ale není plnohodnotný LMS. Standardně neřeší lekce, sledování progresu, kvízy, certifikáty, studentskou sekci nebo ochranu videí. To je potřeba doplnit vlastním modulem, CMS/LMS integrací nebo vlastní aplikací nad Medusa API. Možná struktura pro kurz: Medusa Product: title: Kurz Home Assistant pro začátečníky Varianty: - Online kurz - Online kurz + konzultace - Firemní licence pro 5 lidí Custom Course Module: Course Lesson CourseAccess LessonProgress Typický tok: 1. Zákazník koupí kurz. 2. Medusa vytvoří objednávku. 3. Platba se potvrdí. 4. Subscriber nebo workflow vytvoří CourseAccess. 5. Zákazník po přihlášení vidí kurz ve studentské sekci. Pro jednoduchý digitální produkt existuje v dokumentaci i [[https://docs.medusajs.com/resources/recipes/digital-products|Digital Products Recipe]]. Ten ukazuje obecný princip: vlastní modul pro digitální produkt, propojení s produktovou variantou, uložení souborů přes File Module, admin rozhraní a doručení zákazníkovi po nákupu. Kurz se dá tímto způsobem pojmout jako digitální produkt nebo jako produkt napojený na vlastní kurzový modul. ===== Kdy použít self-hosting a kdy Medusa Cloud ===== Self-hosting dává smysl hlavně ve fázi prototypu nebo pokud je k dispozici člověk, který zvládne provoz Node.js aplikace, PostgreSQL, Redis, storage, zálohy, deployment a monitoring. Medusa Cloud dává větší smysl, pokud: * projekt má jít rychle do produkce, * nechceš řešit DevOps, * je potřeba stabilní deployment z GitHubu, * hodí se preview prostředí pro pull requesty, * jsou důležité zálohy a zero-downtime deploy, * klient platí za provozní jistotu víc než za nejlevnější VPS. Pro první produkční projekt v Meduse vypadá jako rozumný minimální tarif spíš Launch než Develop, protože obsahuje custom storefront domains, automatické backupy, autoscaling a zero-downtime deployment. Develop je vhodnější pro vývoj a ověření technologie. ===== Doporučený ověřovací postup ===== Než se Medusa použije jako základ reálného e-shopu, je vhodné udělat malý proof of concept: - Rozjet Medusu lokálně se starter storefrontem. - V adminu vytvořit několik reálných produktů nebo kurzů. - Otestovat varianty, ceny, regiony, košík a checkout. - Přidat jednoduchý custom modul, například ''Course'' nebo ''TechnicalSpec''. - Propojit custom model s produktem nebo variantou. - Vytvořit workflow po zaplacení objednávky. - Rozhodnout, jestli vývojový model Medusy sedí projektu i týmu. Pro kurzový projekt by minimální MVP mohlo vypadat takto: Medusa: - katalog kurzů - checkout - platby - objednávky Custom část: - Course - Lesson - CourseAccess - jednoduchá studentská sekce Externí služby: - Stripe nebo jiný payment provider - video hosting - e-mailový provider ===== Shrnutí ===== MedusaJS je vhodná volba, pokud má být e-shop spíš vlastní commerce platforma než jednoduchý naklikaný obchod. Open-source MIT licence umožňuje self-hosting i komerční použití bez licenčního poplatku z obratu. Placený Medusa Cloud řeší hlavně infrastrukturu, deploye, zálohy, scaling a provozní pohodlí. Pro e-shop na kurzy je Medusa použitelná jako commerce backend. Prodej, platby, objednávky a zákazníky zvládne dobře, ale kurzovou část typu lekce, progres a studentská sekce je potřeba doplnit vlastním modulem nebo napojit na LMS/CMS. ===== Zdroje ===== * [[https://github.com/medusajs/medusa|Medusa GitHub repository]] * [[https://github.com/medusajs/medusa/blob/develop/LICENSE|Medusa licence]] * [[https://medusajs.com/pricing/|Medusa pricing]] * [[https://docs.medusajs.com/cloud|Medusa Cloud documentation]] * [[https://docs.medusajs.com/learn/advanced-development/architecture/overview|Medusa architecture overview]] * [[https://docs.medusajs.com/learn/installation|Medusa installation]] * [[https://docs.medusajs.com/resources/nextjs-starter|Next.js Starter Storefront]] * [[https://docs.medusajs.com/resources/commerce-modules|Commerce Modules]] * [[https://docs.medusajs.com/resources/commerce-modules/product|Product Module]] * [[https://docs.medusajs.com/learn/fundamentals/workflows|Workflows]] * [[https://docs.medusajs.com/resources/recipes/digital-products|Digital Products Recipe]]