Vývoj E-commerce platformy 'FlyShop' v Nette Frameworku

Vytvorené: 24. 8. 2025 08:38 Aktualizované: 27. 8. 2025 13:14
Vyriešené
Obsah článku

title: "Vývoj E-commerce platformy 'FlyShop' v Nette Frameworku"
slug: "flyshop-ecommerce-platform-nette-framework"
technologies: ["PHP", "Nette Framework", "Nette DI", "Latte", "Tracy", "MySQL", "JavaScript", "HTML", "CSS", "Stripe API", "PayPal API", "AI"]
tags: ["e-commerce", "nette", "php", "full-stack", "project-management", "refactoring", "ai-integration"]
date_solved: "2025-08-21"

Projekt/Téma: Vývoj E-commerce platformy 'FlyShop' v Nette Frameworku

  1. Cieľ / Problém na vyriešenie: Cieľom projektu je vývoj plnohodnotnej, modernej a škálovateľnej e-commerce platformy od nuly. Projekt zahŕňa kompletný cyklus od návrhu architektúry, cez implementáciu frontendu a administrácie, až po integráciu platobných brán, API a pokročilých AI funkcionalít.

  2. Použité technológie a nástroje:

    • Backend: PHP, Nette Framework (DI, Application, Forms, Latte, Tracy)
    • Databáza: MySQL / SQLite
    • Frontend: JavaScript (Naja pre AJAX), HTML, CSS, Latte
    • API a Platby: REST API, Stripe API, PayPal API (plánovaná)
    • Komponenty: Nette Components (ProductListControl, RecommendationControl)
    • Konzola: Symfony Console
    • Databázové migrácie: Phinx
    • Budúce rozšírenia: Elasticsearch/OpenSearch, GraphQL, Symfony Messenger
  3. Kľúčové postupy a konfiguračné kroky:

    • Architektúra: Projekt je štruktúrovaný do troch hlavných modulov: Front, Admin, Api, čo zabezpečuje jasné oddelenie zodpovedností.
    • Komponentový prístup: Využitie Nette komponentov (ProductListControl, RecommendationControl) na zjednotenie a znovupoužitie logiky pre výpis produktov a odporúčania naprieč rôznymi presentermi.
    • Objednávkový proces: Implementácia komplexného checkout procesu vrátane správy adries, firemných údajov, výberu dopravy, platby a integrácie s platobnými bránami (Stripe).
    • Používateľské účty: Kompletná správa zákazníkov vrátane registrácie, prihlásenia, profilu, správy adries a funkcie obnovy hesla.
    • Refaktoring: Identifikácia a plánovanie refaktoringu "natvrdo" kódovaných hodnôt a ich presun do centrálnej databázovej tabuľky settings pre zvýšenie konfigurovateľnosti.
    • AI Integrácia: Plánovanie a čiastočná implementácia AI funkcionalít ako inteligentné vyhľadávanie a personalizované odporúčania produktov.
  4. Výsledné kódy a skripty: Projekt predstavuje rozsiahlu kódovú bázu postavenú na Nette Frameworku. Kľúčovými prvkami sú:

    • OrderFormFactory.php: Zodpovedá za generovanie komplexného objednávkového formulára s dynamickým zobrazovaním cien a podmieneným zobrazovaním polí.
    • ProductFacade.php: Centrálna fasáda pre prácu s produktmi, obsahujúca komplexnú logiku pre filtrovanie, triedenie a vyhľadávanie.
    • ProductListControl.php: Znovupoužiteľná Nette komponenta pre konzistentné zobrazenie zoznamov produktov.
    • app/Api/Presenters/: Súbory definujúce REST API pre externé služby.
  5. Zistené problémy a riešenia (Gotchas):

    • Problém: Nekonzistentné zobrazenie a funkčnosť výpisu produktov na rôznych stránkach (Homepage, Kategória, Všetky produkty).
    • Riešenie: Refaktoring logiky do centrálnej Nette komponenty ProductListControl, ktorá zabezpečuje jednotný vzhľad a správanie.
    • Problém: Nesprávna aktualizácia sumáru objednávky v pokladni pri AJAXových požiadavkách (zmena dopravy, platby).
    • Riešenie: V CheckoutPresenter-i bola pridaná podmienka if (!$this->isAjax()) na zabránenie resetovania sumáru pri AJAXových volaniach.
    • Problém: Kryptograficky slabé generovanie API kľúčov pomocou Nette\Utils\Random::generate().
    • Riešenie: Nahradenie za kryptograficky bezpečnejšiu funkciu bin2hex(random_bytes($length)) v ApiClientFacade.php.
    • Problém: Duplikácia kódu medzi formulárovými továrňami pre Admin a Frontend.
    • Riešenie: Identifikované ako technický dlh s plánom na refaktoring a vytvorenie spoločných bázových tried.
    • Problém: "Natvrdo" kódované hodnoty (počet položiek na stránku, texty, meny, cesty k súborom) roztrúsené po celej aplikácii.
    • Riešenie: Vytvorený komplexný plán na refaktoring a presun týchto hodnôt do centrálnej databázovej tabuľky settings, spravovanej cez SettingService.
  6. Finálny výsledok / Záver: Projekt je v pokročilej fáze vývoja. Má funkčný frontend s prepracovaným objednávkovým procesom a integráciou platobnej brány, rozsiahlu administráciu a pripravené API. Existuje jasne definovaný a rozsiahly zoznam budúcich úloh (TODO), ktorý zahŕňa refaktoring, implementáciu nových funkcionalít a integráciu pokročilých AI a architektonických vylepšení. Projekt demonštruje schopnosť navrhnúť a postaviť komplexnú, škálovateľnú webovú aplikáciu od základov.

Vyriešené: 21. 8. 2025