--- phase: 02-product-actions-fixes plan: 05 subsystem: ui tags: [prestashop, jquery, smarty, ps-attribute-groups, post-payload, new-layout] requires: - phase: 02-product-actions-fixes provides: [add-to-cart handler + POST payload builder (02-02/02-03)] provides: - enumeracja external PS attribute group inputs w POST payload (dla atrybutów poza `#add-to-cart-or-refresh`) - future-proof pattern dla przyszlych attribute groups (nie hardcode group[5]) affects: [przyszle PS attribute groups — plan zlapie je automatycznie] tech-stack: added: [] patterns: - "Enumerate [name^='group['] poza formą → dołącz do payload (PS core delegated handlers tego nie robią per-se; my musimy bo nasz custom submit pomija non-form elementy)" key-files: created: [] modified: - themes/ayon/assets/js/custom.js # +~13 lines payload builder - themes/ayon/templates/catalog/product.tpl # +~13 lines inline mirror key-decisions: - "Enumerate wszystkie [name^='group['] spoza formy zamiast hardcode group[5] — future-proof" - "Defensive `closest('#add-to-cart-or-refresh').length` check — unika duplicate gdyby kiedys przesuniete do formy" - "Filter radio/checkbox przez :checked — unika duplicates z same-name grupy" patterns-established: - "Pattern: PS attribute groups moga byc w dowolnym miejscu template (poza formą) — custom submit MUSI je enumerować i doklejać manualnie" duration: ~20min started: 2026-04-24T22:40:00Z completed: 2026-04-24T22:50:00Z --- # Phase 02 Plan 02-05: Struktura materiału w POST payload — summary **Enumeracja `[name^="group["]` inputs POZA formą `#add-to-cart-or-refresh` dołączana do POST payload — wybrana struktura materiału (`