Commerce Engine Commerce Engine ← Späť na hlavnú stránku

Technická dokumentácia — Commerce Engine

Verzia dokumentu: 1.0 Dátum: 2026-08-01

Tento dokument dopĺňa SOFTWARE_SPECIFICATION.md (funkčná špecifikácia) o implementačné a prevádzkové detaily — architektúru kódu, dátovú schému, autentifikáciu, inštaláciu a testovanie.

1. Technologický stack

Vrstva Technológia / verzia
Jazyk PHP 8.4
Framework Laravel 13
API autentifikácia Laravel Sanctum ^4.0
2FA pragmarx/google2fa ^9.0
PDF export barryvdh/laravel-dompdf ^3.1
QR kódy simplesoftwareio/simple-qrcode ^4.2
Databáza MariaDB/MySQL (produkcia), SQLite (rýchly lokálny vývoj)
Frontend administrácie Blade + Tailwind CSS 4, Vite
Testy PHPUnit ^12.5
Code style Laravel Pint ^1.27
Vývojárske nástroje Laravel Boost, Laravel Pail, Laravel Tinker

2. Architektúra aplikácie

Commerce Engine je jeden Laravel projekt s tromi vrstvami vstupných bodov:

app/
├── Http/
│   ├── Controllers/          # Web (admin) kontroléry
│   │   └── Api/               # REST API kontroléry (v1)
│   ├── Requests/              # Form Request validácie (napr. CheckoutRequest)
│   ├── Resources/             # API Resources (transformácia modelov do JSON)
│   └── Middleware/            # napr. EnsureUserHasRole
├── Models/                    # Eloquent modely
├── Enums/                     # Stavové a typové enumy (native PHP enums)
├── Services/                  # Doménová logika (CartService, CheckoutService, DocumentNumberGenerator)
├── Observers/                 # Model observers (napr. audit log)
└── Providers/

2.1 Vrstvenie zodpovedností

2.2 Rozdelenie API vs. Web

3. Autentifikácia a autorizácia

3.1 Administrácia (web)

3.2 REST API

4. Dátová schéma (hlavné tabuľky)

Tabuľka Kľúčové stĺpce Poznámka
users role, two_factor_secret, two_factor_enabled_at, is_active administrátorský/zákaznícky účet
customers user_id, first_name, last_name, company_name, ico, dic, is_company zákaznícky profil (B2C aj B2B)
customer_addresses customer_id, type, street, city, zip, country, is_default fakturačné/dodacie adresy
products category_id, brand_id, sku, price, sale_price, image_path, seo_* katalógová položka
product_variants product_id, sku, attributes (JSON), stock_quantity varianty produktu (napr. veľkosť/farba)
categories parent_id, slug, position, seo_* stromová štruktúra kategórií
brands slug, logo_path značky/výrobcovia
warehouses, stock_items, stock_movements quantity, reserved_quantity, type skladové hospodárstvo (WMS)
carts, cart_items customer_id / guest_token, status, unit_price košík (guest aj zákaznícky)
orders order_number, first_name, last_name, email, phone, billing_*, shipping_method, payment_method, status, payment_status, total_amount objednávka vrátane kontaktných/fakturačných údajov a dopravy/platby
order_items product_name, quantity, unit_price, total_price položky objednávky (snapshot ceny/názvu)
order_status_histories status, note, user_id história zmien stavu objednávky
discounts, coupons type, value, starts_at, ends_at zľavy a kupóny
tax_rates, currencies, languages rate, exchange_rate, code číselníky
documents order_id, type, document_number, file_path vygenerované dokumenty (faktúry a pod.)
settings company_*, iban, bic, default_currency_code globálne firemné nastavenia
email_templates subject, body šablóny pre transakčné e-maily
audit_logs user_id, action, auditable_type/id, changes (JSON) audit trail zmien entít
personal_access_tokens Sanctum API tokeny

4.1 Enumy (stavy)

5. Kľúčové doménové služby

5.1 CartService

5.2 CheckoutService

5.3 DocumentNumberGenerator

6. Konfigurácia prostredia (.env)

Kľúčové premenné (viď .env.example):

APP_NAME, APP_ENV, APP_URL, APP_LOCALE

DB_CONNECTION=mariadb   # alebo sqlite pre rýchly lokálny vývoj
DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD

SESSION_DRIVER=database
QUEUE_CONNECTION=database
CACHE_STORE=database

MAIL_MAILER, MAIL_HOST, MAIL_PORT, ...   # transakčné e-maily

7. Inštalácia a lokálne spustenie

composer install
npm install

cp .env.example .env
php artisan key:generate

php artisan migrate --seed

Spustenie backendu:

php artisan serve            # http://127.0.0.1:8000

Spustenie frontendu (admin UI) v dev móde s live-reload:

npm run dev

Alternatívne, súbežné spustenie servera aj asset watchera (podľa composer.json scripts):

composer run dev

Produkčný build frontend assetov:

npm run build

8. Testovanie a kvalita kódu

9. Integrácia s klientskými aplikáciami

10. Nasadenie a prevádzka (odporúčania)

11. Referencie