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>
2.5 KiB
Project State
Project Reference
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 10 complete — Edycja personalizacji produktu w koszyku
Current Position
Milestone: Feature Phase: 10 — Edycja 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 10: [██████████] 100% (COMPLETE)
Loop Position
Current loop state (phase 10, plan 01):
PLAN ──▶ APPLY ──▶ UNIFY
✓ ✓ ✓ [Phase 10 complete]
Previous phases:
Phase 4: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-03-12]
Phase 5: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-03-12]
Phase 6: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-03-12]
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
Decisions
- Use existing
CouponRepository::markAsUsed()instead of adding methods to stdClass - 2026-03-16: Przyczyna braku wysyłki = brakujące $apiloRepository w use() closures cron.php (regresja z fazy 6)
- 2026-03-16: Retry -1 orders co 1h zamiast permanent failure
- 2026-03-16: Email notification o trwale failed Apilo jobach
- 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.
Blockers/Concerns
None.
Session Continuity
Last session: 2026-03-19 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