versione 0.8
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# Origine dei prezzi (listino.json) — sistema PVC
|
||||
|
||||
Tutti i `listino.json` in `src/assets/data/modelli/pvc/<cartella>/` sono generati da
|
||||
`scripts/extract_listini_pvc.py`, che legge i blocchi prezzo da `PVC_LISTINO.xls`
|
||||
(root del repo). Ogni blocco è identificato da un titolo nella colonna A del foglio
|
||||
excel; lo script mappa titolo → cartella tramite `KNOWN_FOLDERS`.
|
||||
|
||||
Rigenerare con: `python3 scripts/extract_listini_pvc.py` (richiede `pip install xlrd`).
|
||||
|
||||
## Modelli con listino dedicato (prezzo reale, 1 blocco = 1 modello)
|
||||
|
||||
| id catalogo | Titolo blocco in PVC_LISTINO.xls |
|
||||
|---|---|
|
||||
| `finestra_1_anta` | `FINESTRA 1 ANTA` |
|
||||
| `finestra_2_ante` | `FINSETRA 2 ANTE` *(typo presente nel file excel originale)* |
|
||||
| `finestra_3_ante` | `FINESTRA 3 ANTE` |
|
||||
| `finestra_vasistas` | `WASISTAS CON MARTELLINA` |
|
||||
| `finestra_anta_fissa` | `TELAIO FISSO` |
|
||||
| `portafinestra_1_anta` | `PORTA-FINESTRA 1 ANTA` |
|
||||
| `portafinestra_2_ante` | `PORTA-FINESTRA 2 ANTE` |
|
||||
| `portafinestra_3_ante` | `PORTA-FINESTRA 3 ANTE` |
|
||||
| `bilico` | `BILICO ORIZZONTALE` |
|
||||
| `porta_1_anta` | `PORTA 1 ANTA, CON SERRATURA` |
|
||||
| `porta_1_anta_antipanico` | `PORTA 1 ANTA, ANTIPANICO (APERTURA ESTERNA)` |
|
||||
| `porta_2_ante` | `PORTA 2 ANTE, CON SERRATURA` |
|
||||
| `porta_2_ante_antipanico` | `PORTA 2 ANTE, ANTIPANICO (APERTURA ESTERNA)` |
|
||||
|
||||
> Nota su `porta_1_anta` / `porta_2_ante`: nel listino esistono anche le varianti
|
||||
> "CON SERRATURA (APERTURA ESTERNA)" per entrambi — non usate perché non esiste
|
||||
> una cartella/modello 3D GAMMA distinto per quella variante di apertura.
|
||||
|
||||
## Modelli senza listino dedicato: riusano il blocco `CASSONETTO PVC`
|
||||
|
||||
Nessuno dei prodotti sotto ha un blocco prezzi proprio in `PVC_LISTINO.xls`, né i
|
||||
file `.ods` di GAMMA PVC contengono un listino. Su richiesta esplicita, a tutti
|
||||
questi modelli è stato assegnato lo stesso blocco `CASSONETTO PVC` (range
|
||||
30–250 cm su entrambe le dimensioni), come prezzo provvisorio in attesa di un
|
||||
listino reale per prodotto.
|
||||
|
||||
| id catalogo | categoria |
|
||||
|---|---|
|
||||
| `cassonetto_80` | accessori |
|
||||
| `cassonetto_139` | accessori |
|
||||
| `cassonetto_150` | accessori |
|
||||
| `scuretto_base` | scuretti |
|
||||
| `scuretto_pannello_malachite` | scuretti |
|
||||
| `scuretto_pannello_alessandrite` | scuretti |
|
||||
| `scorrevole_hst_1_anta` | scorrevoli |
|
||||
| `scorrevole_hst_2_ante` | scorrevoli |
|
||||
| `scorrevole_parallelo_1_anta` | scorrevoli |
|
||||
| `scorrevole_sf_1_anta` | scorrevoli |
|
||||
| `scorrevole_sf_2_ante` | scorrevoli |
|
||||
| `traslante_scorrevole_1_anta` | scorrevoli |
|
||||
|
||||
## Modelli ancora senza alcuna corrispondenza
|
||||
|
||||
| id catalogo | listino attuale |
|
||||
|---|---|
|
||||
| `celino` | copia del listino di `finestra_2_ante` (placeholder, nessun prezzo reale disponibile) |
|
||||
|
||||
## Blocchi presenti nel listino ma non usati (nessuna cartella attiva)
|
||||
|
||||
Questi titoli esistono in `PVC_LISTINO.xls` ma corrispondono a prodotti che non
|
||||
hanno un modello 3D GAMMA attivo nel catalogo attuale (cartelle archiviate in
|
||||
`src/assets/data/modelli/pvc_archiviate_senza_corrispondenza/`):
|
||||
|
||||
- `PORTA 1 ANTA, CON SERRATURA_(APERTURA ESTERNA)`
|
||||
- `PORTA 2 ANTE, CON SERRATURA_(APERTURA ESTERNA)`
|
||||
- `SCORREVOLE IN LINEA_2 ANTE` / `_3 ANTE` / `_4 ANTE_2 FISSE + 2 APRIBILI`
|
||||
- `TRASLANTE_ANTA DX+ANTA FISSA SX` / `DX+FISSO SX` / `SX+ANTA FISSA DX` / `SX+FISSO DX`
|
||||
- `ALZANTE 2ANTE_MANO DX` / `MANO SX`
|
||||
- `ALZANTE_1ANTA APRIBILE DX+ANTA FISSA SX` / `SX+ANTA FISSA DX`
|
||||
- `ALZANTE_4ANTE(2 APRIBILI+2 FISSE)`
|
||||
@@ -0,0 +1,81 @@
|
||||
# Parametri URL del configuratore
|
||||
|
||||
Il configuratore legge la sua configurazione iniziale esclusivamente dalla query string dell'URL con cui viene caricato `index.html` (tipicamente dentro un `<iframe>`). La logica di parsing/validazione è in [`src/js/communication/UrlParamsParser.js`](../src/js/communication/UrlParamsParser.js), usata da [`Application.start()`](../src/js/Application.js).
|
||||
|
||||
Esempio:
|
||||
|
||||
```
|
||||
https://.../index.html?sistema=pvc&type=finestra_2_ante
|
||||
```
|
||||
|
||||
## Parametri obbligatori
|
||||
|
||||
| Parametro | Descrizione | Valori ammessi |
|
||||
|---|---|---|
|
||||
| `sistema` | Materiale/serramento | `pvc`, `alluminio`, `legno`, `acciaio` |
|
||||
| `type` | Tipologia di infisso (id modello) | vedi tabella sotto, dipende da `sistema` |
|
||||
|
||||
Se uno dei due manca, o `sistema` non è tra i valori ammessi, l'app lancia un errore in fase di avvio (`Application.start()` intercetta l'eccezione, emette `EVENTS.APP_ERROR` e — se l'app gira in iframe — notifica il parent con `configuratore_error` via `postMessage`).
|
||||
|
||||
Non ci sono altri parametri opzionali gestiti dall'app: tutto il resto della configurazione (dimensioni, finiture, maniglia, vetro, ecc.) viene impostato dall'utente nell'interfaccia dopo il caricamento.
|
||||
|
||||
## Valori validi di `type` per ciascun `sistema`
|
||||
|
||||
Ricavati da `src/assets/data/sistemi/<sistema>/modelli.json` (l'elenco effettivo è quel file — questa tabella va aggiornata se i JSON cambiano).
|
||||
|
||||
### `sistema=pvc`
|
||||
- `finestra_anta_fissa`
|
||||
- `finestra_vasistas`
|
||||
- `finestra_1_anta`
|
||||
- `finestra_2_ante`
|
||||
- `finestra_3_ante`
|
||||
- `portafinestra_1_anta`
|
||||
- `portafinestra_2_ante`
|
||||
- `portafinestra_3_ante`
|
||||
- `scorrevole_multislide`
|
||||
- `alzante_scorrevole_hst`
|
||||
- `portoncino`
|
||||
- `cassonetto` (variante semplificata, vedi sotto)
|
||||
|
||||
### `sistema=alluminio`
|
||||
- `finestra_anta_fissa`
|
||||
- `finestra_vasistas`
|
||||
- `finestra_1_anta`
|
||||
- `finestra_2_ante`
|
||||
- `finestra_3_ante`
|
||||
- `portafinestra_1_anta`
|
||||
- `portafinestra_2_ante`
|
||||
- `portafinestra_3_ante`
|
||||
- `alzante_scorrevole`
|
||||
- `scorrevole`
|
||||
- `portoncino`
|
||||
|
||||
### `sistema=legno`
|
||||
- `finestra_anta_fissa`
|
||||
- `finestra_vasistas`
|
||||
- `finestra_1_anta`
|
||||
- `finestra_2_ante`
|
||||
- `finestra_3_ante`
|
||||
- `portafinestra_1_anta`
|
||||
- `portafinestra_2_ante`
|
||||
- `portafinestra_3_ante`
|
||||
- `alzante_scorrevole_hst`
|
||||
- `portoncino`
|
||||
|
||||
### `sistema=acciaio`
|
||||
- `finestra_anta_fissa`
|
||||
- `finestra_vasistas`
|
||||
- `finestra_1_anta`
|
||||
- `finestra_2_ante`
|
||||
- `finestra_3_ante`
|
||||
- `portafinestra_1_anta`
|
||||
- `portafinestra_2_ante`
|
||||
- `portafinestra_3_ante`
|
||||
|
||||
## Caso speciale: `type=cassonetto`
|
||||
|
||||
Quando `type=cassonetto`, l'app salta l'inizializzazione di maniglia/finitura interna (non applicabili a un cassonetto) e usa il template menu dedicato `assets/_menu-cassonetto.html` invece di `assets/_menu.html`.
|
||||
|
||||
## Comunicazione col parent (non URL, ma correlata)
|
||||
|
||||
Se il configuratore è in iframe, oltre ai parametri URL può ricevere messaggi `postMessage` dal parent (gestiti da [`IframeBridge`](../src/js/communication/IframeBridge.js)), es. `{ fn: 'load_configuration', payload }` per precaricare una configurazione salvata. L'origine del parent deve essere in whitelist (`https://www.infissionline.it`, `https://infissionline.test`).
|
||||
Reference in New Issue
Block a user