Fixes static container admin edit flow by preserving id in hiddenFields and adding route-id fallback during save. Adds regression tests for edit/create id behavior, updates release docs (changelog/testing/CLAUDE), and appends SonarQube open issues to docs/TODO. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
118 lines
4.0 KiB
Markdown
118 lines
4.0 KiB
Markdown
# shopPRO
|
||
|
||
## What This Is
|
||
|
||
Autorski silnik sklepu internetowego pisany od podstaw — odpowiednik WooCommerce lub PrestaShop, ale bez zależności od zewnętrznych platform. Składa się z panelu administratora (zarządzanie zamówieniami, produktami, klientami) oraz części frontowej dla klienta końcowego.
|
||
|
||
## Core Value
|
||
|
||
Właściciel sklepu internetowego ma pełną kontrolę nad sprzedażą online — produktami, zamówieniami i klientami — w jednym spójnym systemie pisanym od podstaw, bez narzutów zewnętrznych platform.
|
||
|
||
## Current State
|
||
|
||
| Attribute | Value |
|
||
|-----------|-------|
|
||
| Version | 0.333 |
|
||
| Status | Production |
|
||
| Last Updated | 2026-04-18 |
|
||
|
||
## Requirements
|
||
|
||
### Validated (Shipped)
|
||
|
||
- [x] Panel administratora — zarządzanie produktami, kategoriami, atrybutami
|
||
- [x] Panel administratora — zarządzanie zamówieniami
|
||
- [x] Panel administratora — zarządzanie klientami
|
||
- [x] Część frontowa — przeglądanie i kupowanie produktów
|
||
- [x] Koszyk i składanie zamówień
|
||
- [x] Integracje płatności i dostaw
|
||
- [x] REST API (ordersPRO + Ekomi)
|
||
- [x] Redis caching
|
||
- [x] Ochrona przed podwójnym składaniem zamówienia
|
||
- [x] Domain-Driven Architecture (migracja z legacy zakończona)
|
||
|
||
### Active (In Progress)
|
||
|
||
- [ ] [Do zdefiniowania podczas planowania]
|
||
|
||
### Planned (Next)
|
||
|
||
- [ ] [Do zdefiniowania podczas planowania]
|
||
|
||
### Out of Scope
|
||
|
||
- Multitenancy (wiele sklepów w jednej instancji) — nie planowane
|
||
|
||
## Target Users
|
||
|
||
**Primary:** Właściciel/administrator sklepu internetowego
|
||
- ZarzÄ…dza produktami, zamĂłwieniami, klientami przez panel admina
|
||
- Potrzebuje niezawodnego, szybkiego narzędzia bez zbędnych zależności
|
||
|
||
**Secondary:** Klient końcowy sklepu
|
||
- Przegląda produkty, dodaje do koszyka, składa zamówienia
|
||
|
||
## Context
|
||
|
||
**Technical Context:**
|
||
- PHP 7.4+ (produkcja: PHP < 8.0)
|
||
- Medoo ORM (`$mdb`), Redis caching
|
||
- Domain-Driven Design z Dependency Injection
|
||
- PHPUnit 9.6, 810+ testĂłw
|
||
- Namespace: `\Domain\`, `\admin\`, `\front\`, `\api\`, `\Shared\`
|
||
|
||
## Constraints
|
||
|
||
### Technical Constraints
|
||
- PHP < 8.0 na produkcji (brak `match`, named arguments, union types)
|
||
- Medoo ORM — prepared statements bez wyjątków
|
||
- Redis wymagany dla cache
|
||
|
||
### Business Constraints
|
||
- System wdraĹĽany u klientĂłw jako update package (ZIP)
|
||
|
||
## Key Decisions
|
||
|
||
| Decision | Rationale | Date | Status |
|
||
|----------|-----------|------|--------|
|
||
| DDD + DI zamiast legacy architektury | Testowalność, separacja odpowiedzialności | 2025 | Active |
|
||
| PHP < 8.0 kompatybilność | Klienci na starszych serwerach | 2025 | Active |
|
||
| Własny silnik zamiast frameworka | Pełna kontrola, brak narzutów | - | Active |
|
||
| `id` w tabbed FormEdit przez `hiddenFields` | Zapobiega insert zamiast update przy edycji encji | 2026-04-18 | Active |
|
||
|
||
## Success Metrics
|
||
|
||
| Metric | Target | Current | Status |
|
||
|--------|--------|---------|--------|
|
||
| Testy | >800 | 821 | On track |
|
||
| Pokrycie architektury DDD | 100% | 100% | Achieved |
|
||
|
||
## Tech Stack
|
||
|
||
| Layer | Technology | Notes |
|
||
|-------|------------|-------|
|
||
| Backend | PHP 7.4+ | < 8.0 na produkcji |
|
||
| ORM | Medoo | `$mdb` global |
|
||
| Cache | Redis | CacheHandler singleton |
|
||
| Frontend | HTML/CSS/JS | Własny silnik szablonów (Tpl) |
|
||
| Auth | Sesje PHP | CSRF, XSS protection |
|
||
| Testy | PHPUnit 9.6 | phpunit.phar |
|
||
|
||
## Specialized Flows
|
||
|
||
See: .paul/SPECIAL-FLOWS.md
|
||
|
||
Quick Reference:
|
||
- /feature-dev → Nowe funkcje, większe zmiany (required)
|
||
- /koniec-pracy → Release, update package (required)
|
||
- /frontend-design → Komponenty UI, szablony widoków
|
||
- /code-review → Przegląd kodu przed release
|
||
- /simplify → Upraszczanie po implementacji
|
||
- /claude-md-improver → Utrzymanie CLAUDE.md
|
||
- /zapisz + /wznow → Zapis i wznowienie sesji
|
||
|
||
---
|
||
*PROJECT.md — Updated when requirements or context change*
|
||
*Last updated: 2026-04-18 after Phase 15*
|
||
|