# Migrazione su riserve-idriche.benza.it

Decisa con Paolo il 30/09/2026. Lavoro fuori preventivo (capitolo 2 di `Lavori_extra_preventivo.docx`),
da pagare entro fine anno: la voce si scrive a lavoro finito, con le ore.

## Cosa va dove

| Indirizzo | Cosa | Da dove |
|---|---|---|
| `riserve-idriche.benza.it` | il sito di Benza Water Storage (questo repository) | branch `migrazione-riserve-idriche` |
| `www.benza.it` | pagina del Gruppo Benza + `/app/` + `/caricamenti/` + `/ponte/` | build di `gruppobenza_26` |
| `arredi-giardino-piscine.benza.it` | nuovo sito Benza srl | `benzasrl_26`, dopo |
| `gruppobenza.it` | redirect a `www.benza.it` (Cloudflare), poi non si rinnova (scade 07/09/2027) | |

## Fatti tecnici da ricordare

- **I tre hosting stanno sullo stesso account FTP** (`ftp.benza.it`, utente 7118509@aruba.it): nella radice
  ci sono `www.benza.it/`, `riserve-idriche.benza.it/`, `arredi-giardino-piscine.benza.it/`. Ma
  **PHP è isolato**: ogni sito vede solo la sua cartella (`/web/htdocs/<host>/home`), e l'FTP rifiuta
  i "rename" da un sito all'altro (550 Cross-site renames). Quindi i file si copiano passando dal Mac.
- **Database:** riserve-idriche usa lo stesso `Sql958286_1` (i DB Aruba si leggono da qualunque hosting
  Aruba) e lo stesso `secrets.php`: `bz_current_env()` dà `prod` a ogni host che non è il NAS.
- **PHP:** riserve-idriche ha 8.3, benza.it 8.5. Il codice gira su entrambi.
- **Dominio nel codice:** tutto passa da `includes/dominio.php` (`BZ_HOST`, `BZ_URL`, `BZ_HOST_AMMESSI`).
- **Allegati dei form verso il gestionale:** in produzione `GestionaleSync::inviaAlPonte()` li manda a
  `https://www.benza.it/ponte/allegato_gestionale.php` con firma HMAC (`BZ_PONTE_ALLEGATI_KEY`, uguale in
  `secrets.php` del sito e in `ponte/ponte_chiave.php` su benza.it). Il ponte è in
  `deploy_benza_it/ponte/`; la chiave non è versionata.
- **Cache del proxy Aruba:** subito dopo il deploy la home può restare la pagina di cortesia di Aruba per
  un po'; `/?x=1` mostra già il sito vero.

## Stato: migrazione fatta il 30/09/2026

- [x] Terzi livelli comprati e pagati (riserve-idriche 15 € + IVA; arredi 33 € + IVA con MySQL e backup).
- [x] Codice: dominio in `includes/dominio.php`, link interni assoluti resi relativi, robots/llms/sitemap, JSON-LD.
- [x] Ponte allegati online su www.benza.it; prova vera dal sito nuovo: allegato arrivato nel gestionale
      (ordine 13054 "PROVA MIGRAZIONE - eliminare", da cancellare).
- [x] Codice, `files/` (6.195 file), `uploads/` (890), `img/` (435) su riserve-idriche, conteggi uguali.
- [x] Passaggio su www.benza.it: landing del gruppo + `.htaccess` con 301; vecchi `.htaccess`, `robots.txt`,
      `llms.txt` rinominati `*.bak_migrazione` (per tornare indietro: si rinominano al loro posto e si
      toglie `index.html`). Il DirectoryIndex deve contenere anche `index.php`, altrimenti le app di
      `/app/` rispondono 403 (successo per due minuti).
- [x] PayPal: webhook `5XY782895B613191H` spostato su riserve-idriche (stesso ID, secrets.php invariato).
- [x] Search Console: proprietà `https://riserve-idriche.benza.it/` verificata col file HTML
      `google66def868cf8aafd0.html` (NON cancellarlo) e sitemap inviata. Il "cambio di indirizzo" non si
      usa: la home di benza.it non rimanda, resta la pagina del gruppo.
- [x] gruppobenza.it: regola di redirect su Cloudflare verso `https://www.benza.it/${2}` (prima in lista,
      query conservata). Rinnovo automatico su Aruba disattivato: scade il 07/09/2027 e non si rinnova.
- [x] Avvisate le sessioni del gestionale e del preventivatore.
- [x] Trovato e corretto durante le prove: il reCAPTCHA del modulo preventivo non funzionava più
      (chiave inesistente per Google), il modulo non partiva. Ora honeypot + tempo minimo, anche su benza.it.

### Resta aperto
- **Cron dei carrelli abbandonati:** sull'hosting di benza.it i "Processi Cron" non sono attivi (servizio a
  parte), quindi il promemoria non è mai partito in automatico. Se Benza lo vuole: cron Aruba a pagamento
  o un servizio esterno che chiami `api/cron/carrelli_abbandonati.php?key=...`.
- `/app/mail` e `/app/noleggi` rispondono 500 (app del 2016-2018, non legate alla migrazione).
- Fra qualche settimana: togliere da www.benza.it i file del vecchio sito, `/api/` compreso (mai `app/`,
  `caricamenti/`, `ponte/`).
- Merchant Center e profilo dell'attività su Google: aggiornare l'indirizzo del sito (Benza).

## Il giorno del passaggio, in ordine

1. Verifica completa di riserve-idriche: pagine, immagini, ricerca, login, carrello, admin, un preventivo
   di prova (controllare che l'allegato arrivi nel gestionale via ponte).
2. Ricopiare `files/` e `uploads/` con `mirror` solo delle differenze (possono essere cambiati dal giorno
   della prima copia: foto nuove dall'admin, allegati).
3. Su benza.it: salvare il vecchio `.htaccess` e `index.php` come `.bak`, caricare la build della landing
   (`dist/`, compreso `.htaccess`). I file del vecchio sito restano dove sono finché non si fa pulizia:
   il 301 li scavalca, e `/api/` resta raggiungibile per i webhook.
4. Controlli con curl: home = landing; `/shop`, `/model611`, `/privacy`, un PDF vecchio → 301 al percorso
   uguale su riserve-idriche; `/app/ordini_clienti/` e `/caricamenti/` non toccati; `/ponte/` risponde.
5. PayPal: nel pannello sviluppatori (serve l'accesso di Benza) cambiare l'URL del webhook in
   `https://riserve-idriche.benza.it/api/pagamenti/paypal_webhook.php`. Nexi: verificare che il back
   office non limiti i domini. Un pagamento vero di prova per ciascuno.
6. Cron dei carrelli abbandonati: riconfigurarlo sul nuovo host.
7. Google: proprietà Search Console per riserve-idriche + sitemap; GA4 (stesso ID, aggiornare lo stream);
   Merchant Center; profilo dell'attività (lo fa Benza).
8. gruppobenza.it → redirect a www.benza.it su Cloudflare.
9. Avvisare la sessione del gestionale (`ordini_clienti_26`): il sito ora sta su riserve-idriche, il DB è
   lo stesso, gli allegati arrivano dal ponte.
10. Dopo qualche settimana: togliere da benza.it i file del vecchio sito (mai `app/` e `caricamenti/`),
    `/api/` compreso quando PayPal punta al nuovo indirizzo.

## Aperto

- `acquisti.benza.it`: terzo livello DNS (5 €/anno) che punta alla vecchia linea Fastweb, spento. Proposto
  di farlo rimandare a riserve-idriche; decide Benza.
- Benza srl: nuovo `.bak` di nopCommerce in `~/Downloads/nopBenza.bak` (30/09). Reimportarlo cancella le
  modifiche fatte dall'admin di benzasrl_26 (vedi il suo STATO.md): da decidere con Paolo.
