Dropdown di opzioni con prezzi
Permetti agli utenti di scegliere un prodotto (o servizio, tariffa, stanza…) da un dropdown, e compila automaticamente il prezzo da un catalogo collegato. Combina un campo Reference con un auto field che copia il prezzo.
Quando usarlo
- Riga ordine: scegli prodotto → il prezzo unitario si compila
- Registrazione: scegli tipo ticket → la tariffa si compila
- Riga preventivo: scegli voce catalogo → il prezzo di listino si compila
Un semplice campo Choice basta quando le opzioni non cambiano mai e non hanno dati extra. Usa una tabella collegata quando prezzi, SKU o disponibilità vivono come record reali che mantieni nel tempo.
Modello dati
| Oggetto | Campi chiave |
|---|---|
| Product | name (Text), sku (Text, opzionale), price (Number), label (Text, auto opzionale — per testo dropdown più ricco) |
| OrderLine | order (Reference → Order), product (Reference → Product), unit_price (Number, auto), quantity (Number) |
Tieni il catalogo su Product. La riga memorizza solo il prodotto scelto e uno Snapshot del prezzo al momento della selezione (unit_price), così le modifiche successive al catalogo non riscrivono gli ordini storici, a meno che non lo voglia.
Passaggi
1. Oggetto catalogo
Crea Product con almeno name e price. Aggiungi righe di esempio nel Builder o tramite import.
Opzionale: un auto field testuale label con Set to a text expression, ad esempio:
{name} — {price}
Imposta il Display field della Reference su label (o name) così il dropdown mostra ciò che gli operatori si aspettano — vedi Field types.
2. Reference sulla riga
Su OrderLine, aggiungi product come Reference a Product. Nei form diventa un dropdown ricercabile di prodotti.
3. Copia il prezzo con un auto field
Su OrderLine, crea (o configura) il campo Number unit_price:
- Apri Automatic Value e abilitalo.
- Scegli Set to a field value.
- Seleziona il campo collegato:
product→price.
Ogni volta che l'utente seleziona (o cambia) il prodotto, unit_price si aggiorna dal catalogo.
4. Totale riga e totale ordine
- Importo riga: live formula o espressione auto
{quantity} * {unit_price}— vedi anche Somma dei prezzi. - Totale ordine: auto sum degli importi riga sull'Order padre.
Suggerimenti
- Snapshot vs prezzo live: copiare in
unit_pricecongela l'importo sulla riga. Se vuoi sempre il prezzo attuale del catalogo, mostra{product.price}nelle viste detail e non memorizzareunit_price— ma totali e documenti di solito richiedono lo Snapshot. - Permetti una modifica manuale lasciando
unit_pricemodificabile e usando la regola auto solo come default quando è vuoto, oppure aggiungi una regola condizionale così la copia avviene solo quandounit_priceè vuoto (a seconda di come configuri le regole). - Ordina il dropdown con l'opzione Reference Sort by (es. per
name). - Nascondi i prodotti fuori produzione con display rules sul form o filtrando i candidati reference quando la tua app lo supporta nelle impostazioni del campo.
Correlati
- Somma i prezzi dei record correlati
- Totale riga con Live formula
- Auto fields
- Data modeling — quando usare un oggetto join vs Reference Array
- Tutorial portale clienti