LeadCommerce è un'applicazione e-commerce full-stack realizzata in PHP (senza framework) e JavaScript (jQuery + Bootstrap), con MySQL come backend per la persistenza dei dati.
Il progetto simula un sistema reale di gestione ordini, carrelli e prodotti per un negozio online.
Realizza un'applicazione PHP e JS che simuli un sistema di gestione ordini per un negozio online. Deve:
- Visualizzare un catalogo di prodotti da DB
- Consentire aggiunta prodotti al carrello
- Applicare uno sconto se il totale supera 100€
- Mostrare un riepilogo ordine
- Salvare l'ordine via AJAX in MySQL
Tutti i requisiti richiesti sono stati svolti, includendo funzionalità aggiuntive (es. registrazione utente, gestione stock, checkout completo).
- Admin: tramite pannello dedicato, gestisce prodotti, ordini, utenti, metodi di pagamento e spedizione.
- Cliente: può acquistare come guest o registrarsi. Gestisce profilo, ordini e indirizzi.
Gestione degli amministratori del sistema. Sicurezza tramite hash password (bcrypt).
Gestione clienti registrati o guest. Permette upgrade automatico da guest a registrato.
Contiene informazioni di catalogo: nome, descrizione, prezzi, stock, SEO, SKU.
Carrello utente, persistente tramite session_token, salvato anche su DB. Supporta sessioni guest o clienti loggati.
Rappresentano un ordine completato, con linee d'ordine separate per ogni prodotto.
Indirizzi associati all'ordine. Gestione separata spedizione / fatturazione.
Metodi gestibili da backend. Possono essere abilitati/disabilitati, con costi e provider personalizzati.
Configurazione dinamica (es. soglia sconto 100€, percentuale sconto 10%).
- Visualizzazione prodotti con prezzi scontati
- Aggiunta al carrello (via AJAX)
- Calcolo automatico sconto 10% oltre i 100€ // questa è personalizzabile da settings dal pannello admin
- Checkout con inserimento indirizzi, metodi di pagamento e spedizione
- Salvataggio ordine in DB, aggiornamento stock
- Riepilogo ordine dettagliato
- Registrazione/login facoltativa
- Gestione login sicuro
- CRUD prodotti
- Visualizzazione e dettaglio ordini
- Gestione clienti
- Configurazione metodi di pagamento/spedizione
- Impostazioni (sconto, soglie, ecc.)
- PHP 8 (puro, MVC custom)
- MySQL 8+
- jQuery 3.7.1
- Bootstrap 4
- AJAX
- Sessioni PHP
lc_cart.customer_id → lc_customer.id(nullable per guest)lc_cart_item.cart_id → lc_cart.idlc_cart_item.product_id → lc_product.idlc_order.customer_id → lc_customer.idlc_order.shipping_method_id → lc_shipping_method.idlc_order.payment_method_id → lc_payment_method.idlc_order_line_item.order_id → lc_order.id
storage/uploads/db-schema.png: schema ER/app/controllers/*: logica applicativa suddivisa per ruoli/app/models/user/UserCart.php: cuore della logica carrello/ordine
Di seguito i passaggi per l'utilizzo
git clone https://github.com/tuo-utente/lead-commerce.git
cd lead-commercemysql -u root -p nome_database < sql/lead-commerce.sql
- Nota: Assicurati di aver creato il database nome_database prima di eseguire il comando.
Copia il file di configurazione locale:
cp config/config.local.php config/config.phpModifica config/config.php con i tuoi parametri MySQL:
define('DB_DRIVER', 'mysql');
define('DB_HOST', 'localhost');
define('DB_NAME', 'leadtechdb');
define('DB_USER', 'leadtech');
define('DB_PASS', 'leadtech');
define('DISCOUNT_TRESHOLD', 100);
define('DISCOUNT_PERCENTAGE', 10);• Admin • Email: admin@leadtech.it • Password: leadtechadmin
