Files
ecommerce-platform/docs/ADMIN_GUIDE.md
T
davide 4a7cd9fbd4 docs: expand admin guide with field-by-field documentation
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.
2026-05-19 09:17:38 +02:00

802 lines
23 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Guida Utente — Pannello Admin
Guida completa all'uso del pannello di amministrazione dell'ecommerce platform.
---
## Indice
1. [Accesso e primo login](#1-accesso-e-primo-login)
2. [Dashboard](#2-dashboard)
3. [Prodotti](#3-prodotti) ← **sezione principale**
4. [Tipi di Prodotto](#4-tipi-di-prodotto-product-types)
5. [Categorie](#5-categorie)
6. [Ordini](#6-ordini)
7. [Clienti](#7-clienti)
8. [Recensioni](#8-recensioni)
9. [Utenti Admin](#9-utenti-admin)
10. [Impostazioni](#10-impostazioni)
11. [Flusso consigliato per iniziare](#11-flusso-consigliato-per-iniziare)
---
## 1. Accesso e Primo Login
### Avviare il server
```bash
docker compose up -d
```
Al primo avvio attendere 5-10 minuti. Per monitorare:
```bash
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
**URL:** http://localhost/admin
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,99
- `49.90` → €49,90
- `100` → €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:
```json
{
"colore": "Rosso",
"taglie_disponibili": ["S", "M", "L", "XL"],
"materiale": "100% cotone",
"lavaggio": "30°C"
}
```
- Esempio per un prodotto elettronico:
```json
{
"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
1. Vai su http://localhost/admin/products
2. Trova il prodotto nella lista (usa la ricerca se necessario)
3. Clicca **"Edit"** sulla riga del prodotto
4. Modifica i campi desiderati
5. 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.
1. Dalla lista prodotti, clicca **"Archive"** sulla riga del prodotto
2. 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
1. Crea e salva il prodotto → il sistema ti reindirizza alla pagina di modifica
2. Scorri fino alla sezione **"Images"** in fondo al form
3. Clicca **"Aggiungi immagini"** e seleziona uno o più file
4. Le anteprime appaiono subito nella griglia — il preview è quadrato, identico a come l'immagine apparirà nel negozio
5. 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
1. Vai su http://localhost/admin/product-types
2. Clicca **"New Product Type"**
3. Compila i campi (vedi sotto)
4. 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: `textarea` con formato JSON
- Definisce quali attributi personalizzati avranno i prodotti di questo tipo
- Usa il formato JSON Schema standard
Esempio per abbigliamento:
```json
{
"type": "object",
"properties": {
"colore": { "type": "string" },
"taglia": { "type": "string" },
"materiale": { "type": "string" }
}
}
```
Esempio per elettronica:
```json
{
"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
1. Vai su http://localhost/admin/categories
2. Clicca **"New Category"**
3. Compila i campi (vedi sotto)
4. 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
1. Apri il dettaglio dell'ordine
2. Trova il menu **"Update Status"**
3. Seleziona il nuovo stato
4. 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
1. Vai su http://localhost/admin/admin-users
2. Clicca **"New Admin User"**
3. Compila i campi (vedi sotto)
4. 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 `OWNER` solo 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 `OWNER` per non perdere l'accesso al pannello.
---
## 10. Impostazioni
**URL:** http://localhost/admin/settings
Configura le impostazioni globali del negozio.
### Come modificare
1. Vai su http://localhost/admin/settings
2. Modifica i campi desiderati
3. 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: `textarea` con formato JSON
- Lista di link mostrati nel footer (es. Privacy Policy, Termini, Contatti)
- Formato: array JSON di oggetti con `label` (testo del link) e `url` (destinazione)
- Esempio:
```json
[
{"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 |