Files
shopPRO/.paul/PROJECT.md
Jacek 9577d4944a feat: custom labels toggle and inline editing in product list
Adds session-based show/hide toggle for custom labels in admin product list, inline editable fields for custom_label_0..4, and label suggestions with custom entry support. Includes repository/controller updates, UI fixes, tests, and PAUL docs release updates.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-19 11:09:19 +02:00

4.0 KiB

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-19

Requirements

Validated (Shipped)

  • Panel administratora - zarządzanie produktami, kategoriami, atrybutami
  • Panel administratora - zarządzanie zamówieniami
  • Panel administratora - zarządzanie klientami
  • Część frontowa - przeglądanie i kupowanie produktów
  • Koszyk i składanie zamówień
  • Integracje płatności i dostaw
  • REST API (ordersPRO + Ekomi)
  • Redis caching
  • Ochrona przed podwójnym składaniem zamówienia
  • Domain-Driven Architecture (migracja z legacy zakończona)
  • Szybka edycja custom_label_0..4 na liscie produktow admina (toggle sesyjny + autocomplete)

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
Inline custom labels w product list przez sesyjny toggle Szybszy workflow dla Google XML bez wejscia w edycje produktu 2026-04-19 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-19 after Phase 16