# 2026-04-24 ## Co zrobiono - [Phase 02, Plan 02-03] Customization save + success modal w nowym layoucie — 5/5 AC pass, milestone production-ready - Task 1: Playwright capture OLD layout payload (26 fields, verbose PL dim format) — IP gate temporary flip do `255.255.255.255`, restored - Task 2: Injection squaremeter fields (`discretion=on`, `dim` VERBOSE, `qty_alt`/`qty_alth`, `calculated_total`, `product_total_price_calc`) w POST do `/pl/koszyk` - Task 3: Chain POST do `/module/ps_shoppingcart/ajax` → render Bootstrap `#blockcart-modal` z "Kontynuuj zakupy" + "Przejdź do kasy" - Krytyczny fix: przeniesiono `{/block}` tak żeby inline script rzeczywiście renderował (Smarty `{extends}` renderuje tylko blocki — Plan 02-02 mirror był dead code) - Dodano `__p02p02InFlight` re-entrancy guard (fix double POST) - basePrice fallback przez `meta[property="product:price:amount"]` (w NEW layout brak `#product_base_price`) - AC-5 regression test OLD layout: zero zmian, handler inert (`p02p02Bound=false` w OLD) - [Phase 02, Plan 02-04] Live cena per-sqm labelka obok "Dodaj do koszyka" w nowym layoucie — 5/5 AC pass - Task 1: `__p02p04EnsureLabel` + `__p02p04RecalcPrice` + delegated input bindings (custom.js + inline mirror w product.tpl) - Task 2: FTP deploy iteracyjny (iterations: 226/226 na każdym deployu) - Task 3: Live Playwright verification wszystkich 5 AC — user pivot mid-task: label obok buttona zamiast nadpisywania `.current-price` (gorna cena "Od XXX zł / m²" zostaje statyczna) - Scope pivot: label obok buttona zamiast nadpisywania `.current-price` — user request - Fix: separate `__p02p04Bound` guard (stale-cache custom.js nie blokuje inline mirror rejestracji) - Fix: synchronous IIFE init zamiast `jQuery(document).ready` (ready nie firuje konsekwentnie w inline Smarty block) - Fix: `setInterval 10×500ms` initial render retry (squaremeter init overwrituje `.current-price` post pierwszy recalc) - Fix: poll-retry rejestracja `prestashop.on('updatedProduct')` (prestashop bundle loads after inline script parse) - [Phase 02, Plan 02-05] Struktura materiału w POST payload (production bug fix) — 4/4 AC pass - Diagnoza Playwright: `