L'introduzione di nuovi modi e strumenti di commercializzare prodotti (o servizi) on-line, comunemente detto e-Commerce o e-Business, ha richiesto la traduzione delle usuali pratiche d'acquisto (consultazione e valutazione, raccolta dei prodotti, pagamento) in una nuova forma, con caratteristiche di semplicità e velocità a volte impraticabili nei negozi "reali" (raccolta dei dati utente e di pagamento, persistenza degli articoli scelti, ecc.). Ormai tutti i siti di commercio elettronico sono dotati del famigerato shopping cart, ossia il carrello della spesa elettronico, oggetto di questo articolo, primo di tre, in cui analizzerò gli aspetti tecnici legati alla sua implementazione, con strumenti e tecnologie a noi familiari. Questo articolo illustra la prima delle tre complete soluzioni di shopping cart, lasciando agli utenti la scelta più appropriata.
Premesse
Per completare i nostri esempi pratici ci serviremo di una ipotetica azienda che commercializza giochi per la nota console PlayStation, denominata "PlayWorld.com". Considerate le soluzioni "off-line" illustrate semplicemente come "base di lancio" per la realizzazione di versioni "on-line" di sicuro interesse, al costo di pochi ma necessari interventi.
Requisiti tecnici
Analizziamo subito gli strumenti di cui dobbiamo dotarci per realizzare la nostra soluzione:
- Server HTTP (IIS/PWS) con ASP 2.0
- Microsoft© Access 97/2000
- Una piccola LAN con almeno un client per effettuare le "prova su strada"; in alternativa usate solo il server con il proprio browser.
Immagino che chiunque possa dotarsi di questi strumenti, ma vi esorto a utilizzarli solo per testare il codice di esempio. Una soluzione sicura, prestante e soprattutto scalabile, richiede l'impiego di strumenti aggiuntivi, oggetto di futuri articoli.
La logica del carrello
Il carrello elettronico è fondamentalmente uno strumento in grado di tenere traccia degli articoli scelti dall'acquirente sul vostro sito web. Per quanto semplice possa apparire, è comunque necessario progettare la logica (in questo caso business-logic) in grado di effettuare le seguenti operazioni:
- Creare un carrello nuovo / Recuperare le informazioni da un carrello esistente
- Gestire le operazioni di inserimento, cancellazione e modifica degli articoli
- Gestire la persistenza delle informazioni (compatibilmente con le scelte operate dai gestori)
- Integrare le informazioni del carrello con la gestione ordini/pagamenti/spedizione, gli aspetti commerciali del sito.
Abbiamo molti modi per gestire questi aspetti attraverso la programmazione, ma è necessario suddividere la progettazione in fasi distinte e provvedere attentamente alla loro integrazione.
Una importante premessa da non sottovalutare è che le soluzioni proposte consentono di realizzare carrelli elettronici "on the fly", ossia con tempo di vita pari alla durata della sessione utente, evitando di rendere le informazioni persistenti almeno fino alla conferma dell'ordine.
Fase 1: il database. Costruiamo le fondamenta
Quale che sarà la soluzione che adotteremo per il nostro carrello, non potrà certo sottrarsi dall'interagire con il nostro database. La soluzione riportata è evidentemente incompleta per gestire tutti gli aspetti di un sito di e-commerce (pagamenti elettronici, ordini, mailing list, spedizioni, ecc.), ma sufficiente per i nostri scopi.
Iniziamo a creare un nuovo file di database con Microsoft© Access 97/2000, nel quale inseriremo quattro tabelle:
NOME TABELLA | DESCRIZIONE |
ORDINI | Contiene informazione sugli ordini inseriti, il loro stato, la data di inoltro, il cliente associato |
DETTAGLIO_ORDINI | Contiene i dettagli dei singoli ordini |
CLIENTI | Contiene i dati dei nostri clienti, comprese le credenziali per l'accesso riservato al sito |
ARTICOLI | Contiene le informazioni sugli articoli proposti sul sito |
Proseguiamo costruendo in ordine le quattro tabelle, definendone le rispettive strutture.
[TABELLA ORDINI] | ||
NOME CAMPO | TIPO DI DATI | NOTE |
CODICE | Contatore Chiave Primaria | Codice univoco dell'ordine |
CLIENTE | Numerico Intero Lungo | Il codice del cliente proprietario dell'ordine |
DATA | Data/Ora | La data di creazione dell'ordine |
STATO | Testo | Definisce lo stato in cui l'ordine si trova (vedi più avanti) |
[TABELLA CLIENTI] | ||
NOME CAMPO | TIPO DI DATI | NOTE |
CODICE | Contatore Chiave primaria | Il codice univoco del cliente |
NOME | Testo Lunghezza (50) | Il nome dell'utente |
COGNOME | Testo Lunghezza (50) | Il cognome dell'utente |
UID | Testo Lunghezza (50) | Il nome utente usato per accedere al sito |
PWD | Testo Lunghezza (50) | La password utente usata per accedere al sito |
Testo Lunghezza (50) | L'indirizzo di posta elettronica del cliente |
[TABELLA DETTAGLIO_ORDINI] | ||
NOME CAMPO | TIPO DI DATI | NOTE |
CODICE | Numerico Intero Lungo Chiave primaria | Il codice univoco dell'articolo |
ORDINE | Numerico Intero Lungo Chiave primaria | Il codice dell'ordine a cui è associato l'articolo |
QTA | Data/Ora | Indica il numero di articoli ordinati |
PREZZO | Valuta | Il prezzo unitatio dell'articolo |
[TABELLA ARTICOLI] | ||
NOME CAMPO | TIPO DI DATI | NOTE |
CODICE | Numerico Chiave primaria | Il codice dell'articolo |
DESCRIZIONE | Testo Lunghezza (255) | La descrizione ridotta dell'articolo |
PREZZO | Valuta | Il prezzo unitatio dell'articolo |
N.B. Un database già pronto è disponibile con gli esempi allegati a questo articolo.
L'ultima operazione da effettuare consiste nel creare le giuste relazioni tra le tabelle, al fine di normalizzare il nostro database e automatizzare alcune operazioni di modifica.
Selezioniamo quindi la voce "Relazioni" dal menù "Strumenti", e definiamo i JOIN come nella figura seguente:
Relazioni tra le tabelle del database
Passo 1: Trascinare il campo "CODICE" della tabella "CLIENTI" sul campo "CLIENTE" della tabella "ORDINI".
Passo 2: Trascinare il campo "CODICE" della tabella "ORDINI" sul campo "ORDINE" della tabella "DETTAGLIO_ORDINI".
Passo 3: Trascinare il campo "CODICE" della tabella "ARTICOLI" sul campo "CODICE" della tabella " DETTAGLIO_ORDINI".
Nella finestra di dialogo Relazioni, che appare quando stabilite la relazione graficamente, selezionare le voci "Applica integrità referenziale", "Aggiorna campi correlati a catena" e "Elimina record correlati a catena". Questa operazione ci assicura che le nostre informazioni siano integre e consistenti, in parole semplici corrette!
Il 50% del lavoro si può ritenere completato a questo punto.
Un sito che commercializza prodotti senza un catalogo, non avrà molto successo. Troverete nel database allegato qualche articolo nella tabella ARTICOLI. Usate la vostra fantasia ed inserite altri articoli, magari prendete come esempio concreto qualche titolo della diffusissima console (che sicuramente avrete), riportando fedelmente i dati nella tabella.
Attenzione: Questo articolo contiene un allegato.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.