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
-
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.
-
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
-
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
settingspre 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.
- Architektúra: Projekt je štruktúrovaný do troch hlavných modulov:
-
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.
-
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á podmienkaif (!$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))vApiClientFacade.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 cezSettingService.
-
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.