# HANDOFF — 2026-07-24 (sessione manutenzione Benza)

## Stato
Sito **LIVE** su www.benza.it, **fase manutenzione** (bug-fix/modifiche da Benza via WhatsApp).
**Nessun task interrotto**: tutto committato + pushato + deployato; `main` allineato a `origin/main`.
Dettaglio completo di ogni intervento in `docs/REFACTORING_LOG.md`. Indice memorie in `memory/MEMORY.md`.

## Fatto in questa sessione (feedback Benza/clienti)
1. **Catalogo `categoria.php`** — card raggruppante prodotto: `foto+nome+tabella` in un unico blocco con
   bordo arrotondato/ombra, header azzurro squadrato, ultima riga a filo del fondo (classe `.bz-cat-group`
   in `sito.css`) → commit `5146dec`. + **URL parlante** `?c=ID` → `categoria{ID}-slug` con `<link canonical>`
   (come `modello.php`) → `936005b`.
2. **Documenti `/documenti`** — ripristinate le "scritte" del vecchio sito nel fallback
   `includes/documenti_default.html` (struttura di `doc_genap.php`: certificazioni con note, blocco
   **"acqua potabile DM 174/2004"**, schede/istruzioni/normative, rassegna stampa raggruppata per testata).
   Path adattati a `uploads/pdf/...`, link verificati vs FTP → `91976b1`. NB: pagina CMS
   (`web_contenuti` chiave `documenti`, DB vuoto → usa il fallback file).
3. **Carrello** — fix link "Condividi": generava `/carrellocarrello_temp.php` (replace fallito sull'URL
   parlante `/carrello`); ora `carrello_temp?share-cart-ID:QTA` → `168ca39`.
4. **`vasche_accessori`** — ordine card **Base → Alta Qualità → Antincendio** + info nel Modello Antincendio
   (progettazione/platea, NTC 2018, UNI EN 12845) → `3215976`.
5. **Homepage `index.php`** — CTA "Hai bisogno di un telo…/Calcola preventivo" spostato **prima** di
   "Dal 1932, esperti dell'acqua"; nuovo CTA "Hai bisogno di un serbatoio…/Scarica il listino"
   (`uploads/pdf/pdf/listino_vasche.pdf`) **dopo** — due sezioni navy separate → `dea72e2`, `b9ee244`.
6. **Gestionale — titolo ordine** (`or_ordini.titolo`, varchar 128): `api/ordini/create.php` ora usa
   `cod_modello` (breve, es. `x1 TNT500 Lunghezza 15 m`) invece di `nome_modello` (lungo/troncato) → `752cb81`.
   Migration **`docs/sql/020_fix_titoli_ordini_gestionale.sql`** (rigenera i titoli già salvati dal nuovo
   sito, cross-DB Sql958286_1↔_2, DRY-RUN+UPDATE) → `cb0184d` — **GIÀ ESEGUITA dall'utente su prod**.
7. **Form Contatti + Preventivo** (`api/pubblico/contatti/send.php`, `api/pubblico/preventivo/send.php`) —
   erano **rotti per tutti** (500 ad ogni invio). Due bug: (a) path include `dirname(__DIR__, 2)` → serve
   **`dirname(__DIR__, 3)`** (endpoint a 3 livelli; la root ha `includes/`, `templates/`) → "Class Mailer
   not found"; (b) **firma `send($to,$subject,$body,$attachments[],$toName)`** chiamata con reply-to/allegato
   negli slot sbagliati. Fix + verificati 200 via curl → `d268d25`.

## Item aperti (non bloccanti)
- **Reply-to nei form**: `Mailer::send()` non ha reply-to per-messaggio → l'email del richiedente resta nel
  corpo (Benza risponde a mano). Estendere il Mailer se si vuole reply-to automatico all'indirizzo cliente.
- Da `project_stato`/`project_audit_remediation`: rigenerare Secret PayPal; C1-04 password SMTP debole;
  confermare migration 012/013 su prod; immagini hero homepage "azzurre" dal cliente; test end-to-end
  pagamenti reali (carta+PayPal).

## Workflow (dettagli in memoria)
Deploy **FTP in chiaro** Aruba (stage su disco reale, non SMB; verificare dimensioni remote). DB dev NAS
`Benza_sito_new` / `Benza_sit_clienti_new` **SOLO SELECT** (skill `db-query`), migration a mano su prod+dev.
`secrets.php`/`mail_config.php` gitignored (FTP a mano). Vedi memorie `project_stato`, `reference_ftp_aruba`,
`reference_db_aruba`, `reference_sync_gestionale`, `feedback_email_accounts`, `reference_app_multiviews`.
