feat: edycja personalizacji produktu w koszyku

Nowa metoda basketUpdateCustomFields() w ShopBasketController — AJAX endpoint
z walidacją required fields, przeliczaniem product_code (MD5 hash) i merge
duplikatów. UI: przycisk "Edytuj personalizację" + formularz inline + JS.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jacek
2026-03-19 19:45:02 +01:00
parent 10f9dfd85f
commit ae016e362b
10 changed files with 550 additions and 35 deletions

View File

@@ -5,25 +5,25 @@
See: .paul/PROJECT.md (updated 2026-03-12)
**Core value:** Właściciel sklepu ma pełną kontrolę nad sprzedażą online w jednym systemie pisanym od podstaw, bez narzutów zewnętrznych platform.
**Current focus:** Phase 9 complete — Apilo email fix + infinite retry
**Current focus:** Phase 10 complete — Edycja personalizacji produktu w koszyku
## Current Position
Milestone: Hotfix
Phase: 9Apilo email notification + infinite retry — Complete
Plan: 09-01 complete (phase done)
Status: UNIFY complete, phase 9 finished
Last activity: 2026-03-19 — 09-01 UNIFY complete
Milestone: Feature
Phase: 10Edycja personalizacji produktu w koszyku — Complete
Plan: 10-01 complete (phase done)
Status: UNIFY complete, phase 10 finished
Last activity: 2026-03-19 — 10-01 UNIFY complete
Progress:
- Phase 9: [██████████] 100% (COMPLETE)
- Phase 10: [██████████] 100% (COMPLETE)
## Loop Position
Current loop state (phase 9, plan 01):
Current loop state (phase 10, plan 01):
```
PLAN ──▶ APPLY ──▶ UNIFY
✓ ✓ ✓ [Phase 9 complete]
✓ ✓ ✓ [Phase 10 complete]
```
Previous phases:
@@ -34,6 +34,7 @@ Phase 6: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-0
Phase 7: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-03-15]
Phase 8: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-03-16]
Phase 9: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-03-19]
Phase 10: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-03-19]
```
## Accumulated Context
@@ -46,6 +47,8 @@ Phase 9: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-0
- 2026-03-19: Order-related Apilo joby — infinite retry co 30 min (nigdy permanent failure)
- 2026-03-19: Email z danymi zamówienia + rozróżnienie PONAWIANY vs TRWAŁY BŁĄD
- 2026-03-19: Cleanup stuck sync_payment/sync_status jobów po udanym wysłaniu
- 2026-03-19: Edycja custom fields w koszyku — product_code przeliczany po zmianie, merge duplikatów przy identycznym hashu
- 2026-03-19: JS handlery koszyka w basket.php (nie basket-details.php) bo basket-details jest AJAX-replaceable
### Deferred Issues
None.
@@ -56,9 +59,9 @@ None.
## Session Continuity
Last session: 2026-03-19
Stopped at: Phase 09 UNIFY complete
Next action: Deploy fix or /paul:progress for next work
Resume file: .paul/phases/09-apilo-email-fix/09-01-SUMMARY.md
Stopped at: Phase 10 UNIFY complete
Next action: /koniec-pracy or next feature
Resume file: .paul/phases/10-basket-edit-custom-fields/10-01-SUMMARY.md
---
*STATE.md — Updated after every significant action*