Aggiunta documentazione campo per campo per tutte le sezioni: Product Types, Categorie, Admin Users, Impostazioni (generale, footer, favicon). Corretto Base Price da centesimi a euro dopo la fix del form.
23 KiB
Guida Utente — Pannello Admin
Guida completa all'uso del pannello di amministrazione dell'ecommerce platform.
Indice
- Accesso e primo login
- Dashboard
- Prodotti ← sezione principale
- Tipi di Prodotto
- Categorie
- Ordini
- Clienti
- Recensioni
- Utenti Admin
- Impostazioni
- Flusso consigliato per iniziare
1. Accesso e Primo Login
Avviare il server
docker compose up -d
Al primo avvio attendere 5-10 minuti. Per monitorare:
docker compose logs -f app
Accedere al pannello
- URL: http://localhost/admin
- Email:
admin@example.com - Password:
Admin1234!test
Cambio password al primo accesso
Al primo login il sistema reindirizza automaticamente alla pagina Change Password. La nuova password deve rispettare tutti i requisiti:
| Requisito | Dettaglio |
|---|---|
| Lunghezza minima | 12 caratteri |
| Lettere maiuscole | almeno 1 |
| Lettere minuscole | almeno 1 |
| Numeri | almeno 1 |
| Simboli | almeno 1 (!@#$% ecc.) |
Dopo il cambio password si accede direttamente alla Dashboard.
2. Dashboard
La dashboard è la schermata iniziale e offre una panoramica rapida dello stato del negozio.
Metriche principali
Sei card in evidenza mostrano i dati in tempo reale:
| Metrica | Descrizione |
|---|---|
| Total Orders | Numero totale di ordini ricevuti |
| Pending Orders | Ordini in attesa di elaborazione (status: PENDING) |
| Revenue | Fatturato totale da ordini pagati |
| Products | Numero di prodotti nel catalogo |
| Customers | Numero di clienti registrati |
| Pending Reviews | Recensioni in attesa di moderazione |
Ordini recenti
Sotto le metriche compare una tabella con i 5 ordini più recenti, che mostra:
- ID ordine
- Cliente
- Importo
- Stato corrente
Cliccando su un ordine si apre il dettaglio.
Link rapidi
Pulsanti di navigazione veloce alle sezioni più usate (Prodotti, Ordini, Categorie).
3. Prodotti
Questa è la sezione più importante del pannello. Permette di gestire l'intero catalogo.
URL lista: http://localhost/admin/products
3a. Lista Prodotti
La pagina mostra tutti i prodotti con:
- Titolo del prodotto
- Stato (DRAFT / PUBLISHED / ARCHIVED)
- Prezzo base
- Stock disponibile
- Pulsanti azione: Modifica, Archivia
Ricerca e filtri
- Barra di ricerca: filtra per titolo in tempo reale
- Filtro stato: dropdown per mostrare solo DRAFT, PUBLISHED o ARCHIVED
Creare un nuovo prodotto
Clicca il pulsante "New Product" (in alto a destra) per aprire il form di creazione.
3b. Creazione Nuovo Prodotto (GUIDA DETTAGLIATA)
URL: http://localhost/admin/products/new
Importante: prima di creare prodotti, assicurati di aver creato almeno un Product Type e almeno una Categoria. Vedi le sezioni 4 e 5.
Il form è diviso in 4 sezioni.
Sezione 1 — Basic Information
Product Type (obbligatorio)
- Campo:
select(menu a tendina) - Seleziona il tipo di prodotto (es. "Abbigliamento", "Elettronica", "Libri")
- Il tipo determina quali attributi custom saranno disponibili nella sezione 4
- Se non hai ancora creato tipi, vai prima su http://localhost/admin/product-types
Title (obbligatorio)
- Campo:
text - Limite: massimo 200 caratteri
- Esempio:
"Sneaker Running Pro Modello X" - Usa un titolo descrittivo e chiaro per i clienti
Slug (obbligatorio)
- Campo:
text - Generato automaticamente dal titolo (es.
sneaker-running-pro-modello-x) - Formato: solo lettere minuscole, numeri e trattini (
-), no spazi - Viene usato nell'URL del prodotto nel negozio:
/products/sneaker-running-pro-modello-x - Puoi modificarlo manualmente, ma deve essere unico tra tutti i prodotti
- Non cambiarlo dopo la pubblicazione per evitare link rotti
Description (obbligatorio)
- Campo:
textarea - Inserisci una descrizione completa del prodotto
- Suggerimenti per una buona descrizione:
- Materiali e composizione
- Caratteristiche principali
- Istruzioni d'uso o cura
- Taglie disponibili (se non gestite tramite varianti)
Sezione 2 — Pricing & Inventory
Base Price (obbligatorio)
- Campo:
number(valore in euro/dollari, con decimali) - Inserisci il prezzo nella valuta selezionata, con il punto come separatore decimale
- Esempi:
19.99→ €19,9949.90→ €49,90100→ €100,00
- Valore minimo:
0 - Il sistema converte automaticamente in centesimi internamente (compatibilità con Stripe)
Currency (obbligatorio)
- Campo:
select - Opzioni disponibili:
EUR— Euro (€)USD— Dollaro americano ($)GBP— Sterlina britannica (£)
- Di default usa la valuta configurata nelle Impostazioni generali
Stock (opzionale)
- Campo:
number - Indica le unità disponibili in magazzino
- Lasciare vuoto = stock illimitato (il prodotto non esaurisce mai)
- Inserire
0= prodotto esaurito (non acquistabile) - Inserire un numero positivo (es.
50) = scorte limitate
Sezione 3 — Status & Organization
Status (obbligatorio)
- Campo:
select - Tre opzioni:
| Valore | Significato |
|---|---|
DRAFT |
Bozza — il prodotto non è visibile nel negozio. Usalo mentre stai lavorando al prodotto. |
PUBLISHED |
Pubblicato — il prodotto è visibile nel negozio e acquistabile. |
ARCHIVED |
Archiviato — il prodotto è nascosto e non vendibile. Usato per prodotti discontinuati. |
Consiglio: inizia sempre con DRAFT, verifica tutto, poi cambia in PUBLISHED.
Categories (opzionale)
- Campo:
checkbox multipli - Assegna il prodotto a una o più categorie del catalogo
- Le categorie aiutano i clienti a navigare il negozio
- Un prodotto può appartenere a più categorie contemporaneamente
- Se non hai ancora creato categorie, vai su http://localhost/admin/categories
Sezione 4 — Custom Attributes
Attributes (opzionale)
- Campo:
JSON - Permette di aggiungere attributi personalizzati in formato JSON
- Gli attributi disponibili dipendono dal Product Type selezionato nella sezione 1
- Esempio per un prodotto di abbigliamento:
{
"colore": "Rosso",
"taglie_disponibili": ["S", "M", "L", "XL"],
"materiale": "100% cotone",
"lavaggio": "30°C"
}
- Esempio per un prodotto elettronico:
{
"marca": "Samsung",
"modello": "Galaxy S25",
"ram_gb": 12,
"storage_gb": 256,
"colori": ["Nero", "Bianco", "Verde"]
}
Il JSON deve essere valido: usa virgolette doppie per le chiavi, nessuna virgola finale nell'ultimo elemento.
Salvare il prodotto
Una volta compilati tutti i campi obbligatori, clicca "Save Product" (o "Create Product").
Se ci sono errori di validazione, il form li mostra in rosso accanto al campo corrispondente. I più comuni:
- Slug già usato da un altro prodotto → cambia lo slug manualmente
- Prezzo negativo → inserire 0 o un valore positivo
- JSON non valido negli attributi → controlla la sintassi
3c. Modifica Prodotto Esistente
- Vai su http://localhost/admin/products
- Trova il prodotto nella lista (usa la ricerca se necessario)
- Clicca "Edit" sulla riga del prodotto
- Modifica i campi desiderati
- Clicca "Save Product"
Tutti i campi sono modificabili in qualsiasi momento.
Cambiare lo status da DRAFT a PUBLISHED è il modo per rendere il prodotto visibile nel negozio.
3d. Archiviare un Prodotto
L'archiviazione rende il prodotto invisibile nel negozio senza eliminarlo.
- Dalla lista prodotti, clicca "Archive" sulla riga del prodotto
- Oppure, entra in modifica e cambia lo Status in
ARCHIVED
I prodotti archiviati non vengono eliminati: puoi ripristinarli in qualsiasi momento cambiando lo status in PUBLISHED.
Non esiste un'eliminazione definitiva dall'interfaccia admin — l'archiviazione è l'operazione più "definitiva" disponibile.
3e. Immagini prodotto
La sezione Images appare in fondo alla pagina di modifica di un prodotto già salvato (non durante la creazione iniziale).
Formato consigliato
| Proprietà | Valore |
|---|---|
| Proporzione | 1:1 (quadrata) |
| Risoluzione minima | 800 × 800 px |
| Risoluzione consigliata | 1200 × 1200 px |
| Formati accettati | JPEG, PNG, WebP |
| Dimensione massima | 5 MB per file |
Il negozio mostra sempre le immagini in formato quadrato ritagliando al centro. Se carichi un'immagine rettangolare, le parti ai lati (o in alto/basso) verranno tagliate e non saranno visibili.
Esempio: una foto 1600×900 px (orizzontale) verrà mostrata ritagliata al centro come un quadrato 900×900 px — i bordi sinistro e destro spariranno.
Come aggiungere immagini
- Crea e salva il prodotto → il sistema ti reindirizza alla pagina di modifica
- Scorri fino alla sezione "Images" in fondo al form
- Clicca "Aggiungi immagini" e seleziona uno o più file
- Le anteprime appaiono subito nella griglia — il preview è quadrato, identico a come l'immagine apparirà nel negozio
- Puoi caricare più immagini: la prima è quella mostrata nelle card del catalogo
Come eliminare un'immagine
Passa il mouse sopra l'anteprima e clicca il pulsante ✕ che appare nell'angolo in alto a destra.
4. Tipi di Prodotto (Product Types)
URL: http://localhost/admin/product-types
I Product Types definiscono la struttura degli attributi custom per categoria di prodotti. Vanno creati prima dei prodotti.
Cos'è un Product Type
Un tipo di prodotto è essenzialmente uno schema che dice: "i prodotti di questa categoria hanno questi attributi". Esempio:
- Tipo "Abbigliamento" → attributi: colore, taglia, materiale
- Tipo "Elettronica" → attributi: marca, RAM, storage, display
- Tipo "Libri" → attributi: autore, ISBN, editore, pagine
Come creare un Product Type
- Vai su http://localhost/admin/product-types
- Clicca "New Product Type"
- Compila i campi (vedi sotto)
- Clicca "Save"
Campi — Product Type
Name (obbligatorio)
- Campo:
text - Il nome del tipo di prodotto, visibile solo nell'admin
- Esempio:
Abbigliamento,Elettronica,Libri - Usa nomi chiari che descrivano la categoria merceologica
Slug (obbligatorio)
- Campo:
text - Identificatore univoco generato automaticamente dal nome
- Formato: solo lettere minuscole, numeri e trattini (es.
abbigliamento,elettronica) - Non può contenere spazi o caratteri speciali
- Viene usato internamente dal sistema per identificare il tipo — non è visibile ai clienti
- Non modificarlo dopo aver creato prodotti con questo tipo
Schema (JSON) (opzionale)
- Campo:
textareacon formato JSON - Definisce quali attributi personalizzati avranno i prodotti di questo tipo
- Usa il formato JSON Schema standard
Esempio per abbigliamento:
{
"type": "object",
"properties": {
"colore": { "type": "string" },
"taglia": { "type": "string" },
"materiale": { "type": "string" }
}
}
Esempio per elettronica:
{
"type": "object",
"properties": {
"marca": { "type": "string" },
"ram_gb": { "type": "number" },
"storage_gb": { "type": "number" }
}
}
Lo schema è una guida per te — il sistema non blocca l'inserimento di attributi non definiti nello schema.
Modifica e gestione
- I tipi esistenti si possono modificare cliccando "Edit"
- Modificare uno schema non altera i prodotti già creati con quel tipo
- Usare nomi chiari e descrittivi per ritrovarli facilmente
5. Categorie
URL: http://localhost/admin/categories
Le categorie organizzano il catalogo e aiutano i clienti a navigare il negozio.
Struttura gerarchica
Le categorie supportano una gerarchia padre/figlio:
Abbigliamento (padre)
├── Uomo
│ ├── T-shirt
│ └── Pantaloni
└── Donna
├── Vestiti
└── Scarpe
Creare una categoria
- Vai su http://localhost/admin/categories
- Clicca "New Category"
- Compila i campi (vedi sotto)
- Clicca "Save"
Campi — Categoria
Name (obbligatorio)
- Campo:
text - Il nome della categoria visibile ai clienti nel negozio
- Esempio:
Sneaker,T-shirt Uomo,Smartphone - Usa nomi brevi e chiari
Slug (obbligatorio)
- Campo:
text - Generato automaticamente dal nome
- Formato: solo lettere minuscole, numeri e trattini (es.
sneaker,t-shirt-uomo) - Viene usato nell'URL della categoria nel negozio:
/category/sneaker - Non modificarlo dopo aver pubblicato la categoria per evitare link rotti
Parent Category (opzionale)
- Campo:
select(menu a tendina) - Permette di creare una gerarchia padre/figlio
- Lascia vuoto per una categoria di primo livello (es.
Abbigliamento) - Seleziona una categoria esistente per creare una sottocategoria (es.
Sneaker→ padre:Scarpe) - Puoi annidare più livelli (es.
Running→ padre:Sneaker→ nonno:Scarpe)
Modificare una categoria
Clicca "Edit" accanto alla categoria, modifica i campi, salva.
Eliminare una categoria
- Clicca "Delete" accanto alla categoria
- Attenzione: non è possibile eliminare una categoria se ha prodotti assegnati. Riassegna prima i prodotti ad altre categorie.
6. Ordini
URL: http://localhost/admin/orders
Gestisci tutti gli ordini ricevuti nel negozio.
Lista ordini
La lista mostra tutti gli ordini con:
- ID ordine
- Cliente (nome ed email)
- Data
- Importo totale
- Stato corrente
Filtrare per stato
Usa il menu "Filter by status" per vedere solo gli ordini in un determinato stato:
| Stato | Descrizione |
|---|---|
PENDING |
Ordine creato, pagamento non ancora completato |
PAID |
Pagamento ricevuto, in attesa di evasione |
FULFILLED |
Ordine evaso e spedito al cliente |
CANCELLED |
Ordine annullato |
REFUNDED |
Rimborso effettuato |
Dettaglio ordine
Clicca su un ordine per aprire il dettaglio. Trovi:
- Dati cliente: nome, email, indirizzo di spedizione
- Prodotti ordinati: lista articoli con quantità e prezzo unitario
- Riepilogo economico:
- Subtotale
- Tasse
- Spedizione
- Totale
- Dati pagamento: provider (Stripe), ID transazione, data pagamento
Aggiornare lo stato di un ordine
- Apri il dettaglio dell'ordine
- Trova il menu "Update Status"
- Seleziona il nuovo stato
- Clicca "Update"
Flusso tipico di un ordine:
PENDING → PAID → FULFILLED
In caso di problemi:
PAID → CANCELLED → REFUNDED
7. Clienti
URL: http://localhost/admin/customers
Visualizza tutti i clienti registrati nel negozio.
Informazioni disponibili
Per ogni cliente viene mostrato:
- Email e nome
- Stato verifica email: verificata o non verificata
- Numero di ordini effettuati
- Data registrazione
Cosa puoi fare
La sezione clienti è attualmente in sola lettura: puoi visualizzare i clienti ma non modificarli o eliminarli dall'interfaccia admin.
Per operazioni avanzate sui clienti (reset password, eliminazione account) è necessario intervenire direttamente sul database.
8. Recensioni
URL: http://localhost/admin/reviews
Modera le recensioni lasciate dai clienti sui prodotti.
Stati delle recensioni
| Stato | Descrizione |
|---|---|
PENDING |
Recensione appena inviata, in attesa di moderazione |
APPROVED |
Recensione approvata e visibile nel negozio |
HIDDEN |
Recensione nascosta (spam, contenuto inappropriato) |
Filtrare le recensioni
Usa il filtro per stato per vedere solo le recensioni che richiedono attenzione (es. solo PENDING).
Moderare una recensione
Ogni recensione mostra:
- Prodotto a cui è riferita
- Valutazione in stelle (1-5)
- Testo della recensione
- Cliente che l'ha scritta
- Data
Azioni disponibili:
- Approve → rende la recensione visibile nel negozio
- Hide → nasconde la recensione (non viene eliminata)
- Reset to Pending → riporta la recensione in stato di attesa
Best practice: approva rapidamente le recensioni PENDING per mantenere il negozio attivo e credibile. Nascondi solo recensioni con contenuto offensivo o spam.
9. Utenti Admin
URL: http://localhost/admin/admin-users
Gestisci gli account che possono accedere al pannello admin.
Ruoli disponibili
| Ruolo | Permessi |
|---|---|
ADMIN |
Accesso completo al pannello, gestione prodotti/ordini/clienti |
OWNER |
Come ADMIN, più la possibilità di gestire altri admin e le impostazioni di sistema |
Creare un nuovo admin
- Vai su http://localhost/admin/admin-users
- Clicca "New Admin User"
- Compila i campi (vedi sotto)
- Clicca "Create"
Il nuovo admin dovrà cambiare la password al primo accesso.
Campi — Admin User
Name (obbligatorio)
- Campo:
text - Nome e cognome dell'amministratore
- Visibile nella lista admin e nei log di audit
- Esempio:
Mario Rossi
Email (obbligatorio)
- Campo:
email - Indirizzo email usato per accedere al pannello admin
- Deve essere unica — non è possibile avere due admin con la stessa email
- Esempio:
mario.rossi@negozio.it
Role (obbligatorio)
- Campo:
select - Seleziona il livello di accesso:
| Ruolo | Cosa può fare |
|---|---|
ADMIN |
Gestire prodotti, ordini, clienti, recensioni, categorie, tipi prodotto |
OWNER |
Tutto ciò che può fare ADMIN, più: gestire altri admin, modificare le impostazioni di sistema |
Assegna
OWNERsolo a persone di fiducia — può modificare impostazioni critiche e creare/eliminare altri admin.
Password (obbligatorio)
- Campo:
password - Password temporanea assegnata al nuovo admin
- Deve rispettare i requisiti di sicurezza: minimo 12 caratteri, almeno una maiuscola, una minuscola, un numero e un simbolo
- Il sistema chiederà di cambiarla al primo accesso
- Esempio sicuro:
Temp#2026Admin!
Eliminare un admin
Clicca "Delete" accanto all'admin da rimuovere.
Attenzione: non è possibile eliminare il proprio account. Non eliminare l'ultimo account
OWNERper non perdere l'accesso al pannello.
10. Impostazioni
URL: http://localhost/admin/settings
Configura le impostazioni globali del negozio.
Come modificare
- Vai su http://localhost/admin/settings
- Modifica i campi desiderati
- Clicca "Save Settings"
Le modifiche hanno effetto immediato su tutto il negozio.
Campi — Impostazioni generali
Site Name
- Campo:
text - Il nome del negozio, mostrato nel titolo del browser, nelle email ai clienti e nel footer
- Esempio:
Il Mio Negozio,ShopX Italia - Tienilo breve e riconoscibile
Site Description
- Campo:
text - Breve descrizione del negozio, usata nei meta tag per i motori di ricerca (SEO)
- Esempio:
Il miglior ecommerce di abbigliamento sportivo italiano - Consigliato: massimo 160 caratteri
Support Email
- Campo:
email - Indirizzo email mostrato ai clienti per il supporto (es. nella pagina contatti, nelle email di conferma ordine)
- Esempio:
supporto@mionegozio.it - Assicurati che sia una casella monitorata
Default Currency
- Campo:
text - Valuta usata di default per i nuovi prodotti e per il negozio
- Valori accettati:
EUR,USD,GBP(codice ISO 4217 a 3 lettere) - Esempio:
EUR - Attenzione: cambiare la valuta dopo aver creato prodotti non converte automaticamente i prezzi esistenti
Tax Rate (%)
- Campo:
number - Aliquota IVA applicata agli ordini, espressa in percentuale
- Esempi:
22→ IVA italiana al 22%10→ IVA ridotta al 10%0→ nessuna tassa applicata
- Il valore viene mostrato nel riepilogo dell'ordine al checkout
Campi — Footer
Testo copyright
- Campo:
text - Testo mostrato nel footer del negozio, solitamente l'indicazione del copyright
- Esempio:
© 2026 Il Mio Negozio. Tutti i diritti riservati. - Lascia vuoto per non mostrare nulla
Link footer (Footer Links)
- Campo:
textareacon formato JSON - Lista di link mostrati nel footer (es. Privacy Policy, Termini, Contatti)
- Formato: array JSON di oggetti con
label(testo del link) eurl(destinazione) - Esempio:
[
{"label": "Privacy Policy", "url": "/privacy"},
{"label": "Termini e Condizioni", "url": "/termini"},
{"label": "Contatti", "url": "/contatti"}
]
- Lascia
[]per non mostrare link nel footer - Gli URL possono essere relativi (
/privacy) o assoluti (https://...)
Campi — Branding
Favicon
- Campo:
file upload - Icona del negozio mostrata nel tab del browser e nei preferiti
- Formati accettati: PNG, ICO, SVG, JPEG, WebP
- Dimensione massima: 1 MB
- Dimensione consigliata: 32×32 px o 64×64 px (quadrata)
- Come caricare: clicca "Scegli file", seleziona l'immagine, clicca "Upload Favicon"
- La favicon viene aggiornata immediatamente su tutte le pagine
11. Flusso Consigliato per Iniziare
Se stai configurando il negozio da zero, segui quest'ordine:
Step 1 — Configura le impostazioni base
Vai su Impostazioni e imposta nome negozio, valuta e aliquota IVA.
Step 2 — Crea i Product Types
Vai su Product Types e crea i tipi per le tue categorie di prodotti. Esempio: "Abbigliamento", "Accessori", "Scarpe".
Step 3 — Crea le Categorie
Vai su Categorie e crea la struttura del catalogo. Esempio: "Uomo > T-shirt", "Donna > Vestiti".
Step 4 — Aggiungi i Prodotti
Vai su Prodotti → New Product e compila il form.
Inizia con DRAFT per testare, poi passa a PUBLISHED.
Step 5 — Verifica il negozio
Apri http://localhost nel browser (non /admin) e naviga il negozio come farebbe un cliente.
Controlla che i prodotti pubblicati siano visibili e che le categorie siano corrette.
Step 6 — Configura i pagamenti
Aggiungi le chiavi Stripe test nel file .env per testare il flusso di acquisto completo.
Riferimenti rapidi
| Sezione | URL |
|---|---|
| Dashboard | http://localhost/admin |
| Prodotti | http://localhost/admin/products |
| Nuovo Prodotto | http://localhost/admin/products/new |
| Product Types | http://localhost/admin/product-types |
| Categorie | http://localhost/admin/categories |
| Ordini | http://localhost/admin/orders |
| Clienti | http://localhost/admin/customers |
| Recensioni | http://localhost/admin/reviews |
| Admin Users | http://localhost/admin/admin-users |
| Impostazioni | http://localhost/admin/settings |
| Email (Mailpit) | http://localhost:8025 |