AUTOMATIZZARE LA GESTIONE DELLE VENDITE ONLINE DI CIBO DA ASPORTO: analisi+SQL.

Anatomia SQL
Anatomia SQL

Esempio pratico realistico di automazione della gestione delle vendite online di cibo da asporto, modellato come un piccolo sistema gestionale utilizzato da ristoranti o dark kitchen[1].

1. Analisi del problema.

Un’attività di food delivery deve gestire:

  • Clienti
  • Prodotti (piatti, bevande, menù)
  • Ordini online
  • Pagamenti
  • Stato preparazione e consegna

Il sistema deve permettere di:

  • Ricevere ordini dal sito/app
  • Calcolare automaticamente il totale
  • Gestire disponibilità prodotti
  • Monitorare stato ordine
  • Generare report vendite

2. Modellazione concettuale

Entità principali

  • Cliente
  • Prodotto
  • Ordine
  • Dettaglio ordine
  • Pagamento

Relazioni

  • Un cliente può fare più ordini
  • Un ordine contiene più prodotti
  • Ogni ordine ha un pagamento

3. Struttura database (Esempio SQL).

Tabella Clienti

CREATE TABLE Clienti (

    id_cliente INT PRIMARY KEY,

    nome VARCHAR(50),

    telefono VARCHAR(20),

    indirizzo VARCHAR(100),

    email VARCHAR(100)

);

Tabella Prodotti

CREATE TABLE Prodotti (

    id_prodotto INT PRIMARY KEY,

    nome VARCHAR(100),

    prezzo DECIMAL(6,2),

    disponibile BOOLEAN

);

Tabella Ordini

CREATE TABLE Ordini (

    id_ordine INT PRIMARY KEY,

    id_cliente INT,

    data_ordine DATETIME,

    stato VARCHAR(30),

    FOREIGN KEY (id_cliente) REFERENCES Clienti(id_cliente)

);

Tabella Dettaglio Ordine

CREATE TABLE Dettaglio_Ordine (

    id_ordine INT,

    id_prodotto INT,

    quantita INT,

    PRIMARY KEY (id_ordine, id_prodotto),

    FOREIGN KEY (id_ordine) REFERENCES Ordini(id_ordine),

    FOREIGN KEY (id_prodotto) REFERENCES Prodotti(id_prodotto)

);

Tabella Pagamenti

CREATE TABLE Pagamenti (

    id_pagamento INT PRIMARY KEY,

    id_ordine INT,

    metodo VARCHAR(50),

    importo DECIMAL(8,2),

    stato_pagamento VARCHAR(30),

    FOREIGN KEY (id_ordine) REFERENCES Ordini(id_ordine)

);

4. Automazioni pratiche.

Inserimento nuovo ordine

INSERT INTO Ordini

VALUES (1001, 3, NOW(), ‘In preparazione’);

Inserimento prodotti nell’ordine

INSERT INTO Dettaglio_Ordine

VALUES (1001, 10, 2);

Il cliente ordina 2 unità del prodotto con ID 10.

Calcolo automatico totale ordine

SELECT O.id_ordine,

       SUM(P.prezzo * D.quantita) AS totale

FROM Ordini O

JOIN Dettaglio_Ordine D ON O.id_ordine = D.id_ordine

JOIN Prodotti P ON D.id_prodotto = P.id_prodotto

WHERE O.id_ordine = 1001

GROUP BY O.id_ordine;

Aggiornamento stato ordine

UPDATE Ordini

SET stato = ‘Consegnato’

WHERE id_ordine = 1001;

Report vendite giornaliere

SELECT DATE(data_ordine) AS giorno,

       COUNT(id_ordine) AS numero_ordini

FROM Ordini

GROUP BY giorno;

5. Automazione avanzata (Controllo disponibilità prodotto).

CREATE TRIGGER controllo_disponibilita

BEFORE INSERT ON Dettaglio_Ordine

FOR EACH ROW

BEGIN

    DECLARE stato BOOLEAN;

    SELECT disponibile

    INTO stato

    FROM Prodotti

    WHERE id_prodotto = NEW.id_prodotto;

    IF stato = FALSE THEN

        SIGNAL SQLSTATE ‘45000’

        SET MESSAGE_TEXT = ‘Prodotto non disponibile’;

    END IF;

END;

Impedisce l’ordine di prodotti esauriti.

6. Caso pratico reale.

Scenario

Un ristorante vende online:

  • Pizza Margherita
  • Bibite
  • Panini

Processo automatizzato

  1. Cliente accede al sito
  2. Seleziona prodotti
  3. Il sistema calcola totale automaticamente
  4. Cliente paga online
  5. Cucina riceve ordine
  6. Ordine cambia stato (preparazione → spedito → consegnato)

7. Funzionalità realistiche aggiuntive.

Sistema reale potrebbe includere:

  • Tracking consegna in tempo reale
  • Gestione rider
  • Sconti e coupon
  • Menù dinamico
  • Orari apertura automatizzati
  • Statistiche prodotti più venduti
  • Notifiche push/email

8. Possibile architettura software.

Stack tipico:

  • Database: MySQL / PostgreSQL
  • Backend: Node.js / Java / Python
  • Frontend: App o sito web
  • Integrazione pagamento: PayPal / Stripe

Mini riassunto. L’automazione consente di:

  • Gestire clienti e prodotti
  • Ricevere ordini online
  • Calcolare automaticamente costi
  • Monitorare stato ordini
  • Generare report vendite
  • Ridurre errori manuali

[1] Una dark kitchen (o ghost kitchencloud kitchen) è un ristorante che opera esclusivamente tramite la consegna a domicilio (delivery) o l’asporto, privo di sala ristorante, tavoli o vetrina su strada. Si tratta di laboratori di cucina professionali ottimizzati per le vendite online, posizionati spesso in zone meno centrali, riducendo i costi di affitto e personale.

** Se puoi sostenere il mio lavoro, comprami un libro | Buy me a book! **
** ISCRIVITI ALLA NEWSLETTER ! **

About the Author

Sergio Mauri
Blogger, autore. Perito in Sistemi Informativi Aziendali, musicista e compositore, Laurea in Discipline storiche e filosofiche e in Filosofia. Premio speciale al Concorso Claudia Ruggeri nel 2007; terzo posto al Premio Igor Slavich nel 2020. Ha pubblicato con Terra d'Ulivi nel 2007 e nel 2011, con Hammerle Editori nel 2013 e 2014, con PGreco nel 2015 con Historica Edizioni e Alcova Letteraria nel 2022 con Silele Edizioni (La Tela Nera) nel 2023 e con Amazon Kdp nel 2024 e 2025.