Ticket #26 (closed compito: sistemata)
E' opportuno implementare un recipiente (virtuale) dove i Gasisti possano accumulare temporaneamente i Prodotti da ordinare ?
| Reported by: | lfranc | Owned by: | somebody |
|---|---|---|---|
| Priority: | importante | Milestone: | Documento di analisi funzionale |
| Component: | analisi | Keywords: | |
| Cc: |
Description
In una piattaforma di e-commerce generalmente esiste un recipiente virtuale (Carrello) dove i clienti possono accumulare i prodotti da ordinare prima di impartire la disposizione di acquisto vera e propria (in analogia con quello che avviene in un supermercato). Per sua natura il Carrello è un recipiente temporaneo, e in qualsiasi momento il cliente può modificarne la composizione (aggiungere/rimuovere/modificare gli articoli presenti e le relative quantità).
Domanda: per modellizzare i processi di ordine che avvengono all'interno di un GAS, il concetto di Carrello è utile ?
Change History
comment:2 in reply to: ↑ 1 ; follow-up: ↓ 3 Changed 2 years ago by lfranc
Replying to dom_thual:
All'interno di un GAS c'è il concetto di Carrello.
Ok, direi che questa affermazione risponde alla domanda oggetto del ticket ;-)
Il carrello di un gassista contiene una lista di prodotti (con quantità desiderate).
OK
Il Carrello è multi produttore.
OK
Chi dice Carrello non dice a priori che esiste una gestione di conferma.
Sono d'accordo, ma la domanda non fa in alcun modo riferimento a questa problematica, che è oggetto di discussione del ticket #27.
Nei GAS la conferma di un Carrello si fa alla chiusura di un OrdineProduttore.
Cioè il gassista continua di vedere il listino prodotti ordinati ma non può più modificarli.
Questo approccio (conferma automatica delle VociDiCarrello alla chiusura di un OrdineProduttore) è una delle opzioni possibili, ma non l'unica, nè a livello teorico, nè per quanto riguarda le prassi dei GAS; vedi anche qui il ticket #27.
Durante il periodo di apertura dell'ordineProduttore in qualsiasi momento il Gassista manipola il suo carrello.
OK
Se il Gassista compone i suoi ordini in tre giorni --> non vengono salvati 3 carrelli sul database, non viene manco salvato 1 carrello: ma solamente una lista di prodotti richiesti.
-->il carrello è una vista.
OK; un Carrello è semplicemente l'elenco delle attuali VociDiCarrello (che a loro volta possono essere semplicemente considerate come OrdiniGasista nello stato NON_CONFERMATO).
Posso vedere e modificare il carrello (la lista dei prodotti) per gli tutti gli OrdiniProduttore aperti
OK
Posso vedere la lista dei prodotti che mi aspetta per la prossima consegna.
Posso vedere la lista dei prodotti filtrata per produttore
Posso consultare la lista dei prodotti del mese scorso
OK, ma questo sono dettagli da affrontare in seguito, quando si discuterà dell'interfaccia utente.
In questo progetto sarebbe opportuno di non creare nessun entità carrello.
La domanda era se il concetto di Carrello fosse utile, non come questo concetto debba essere rappresentato a livello software.
comment:3 in reply to: ↑ 2 Changed 2 years ago by fero
Replying to lfranc:
Replying to dom_thual:
All'interno di un GAS c'è il concetto di Carrello.
Ok, direi che questa affermazione risponde alla domanda oggetto del ticket ;-)
[...]
Se il Gassista compone i suoi ordini in tre giorni --> non vengono salvati 3 carrelli sul database, non viene manco salvato 1 carrello: ma solamente una lista di prodotti richiesti.
-->il carrello è una vista.
OK; un Carrello è semplicemente l'elenco delle attuali VociDiCarrello (che a loro volta possono essere semplicemente considerate come OrdiniGasista nello stato NON_CONFERMATO).
Credo che questo sia lo scambio che arriva al punto. Non prevedere un'entità Carrello, ma il Carrello è una visualizzazione degli OrdiniGasista in uno stato NON_CONFERMATO.
Se non ho travisato prego Lorenzo di annotare da qualche parte nel documento di analisi e chiuderei il ticket.
comment:4 Changed 2 years ago by dom_thual
Credo sia opportuno che un OrdiniGasista NON ha gestione di stati.
Se dovessimo implementare una gestione a stati degli OrdiniGasista sarebbe da definire quale plus value intendiamo portare alla gestione del GAS o a quali casi pensiamo rispondere introducendo questa caratteristica.
adesso mi allarma di vedere nel vocabolario sono la definizione di OrdineGassista
stato: può assumere i valori:
- NON_CONFERMATO: l'OrdineGasista è solamente una VoceDiCarrello
- CONFERMATO: l'OrdineGasista è stato confermato dal Gasistab
- FINALIZZATO: l'OrdineProduttore associato all'OrdineGasista è stato chiuso, per cui l'OrdineGasista non è più modificabile dal Gasista
- INVIATO: l'OrdineGasista è stato inviato al Produttore
- CONSEGNATO: l'OrdineGasista è stato consegnato dal Produttore
- RITIRATO: l'OrdineGasista è stato ritirato dal Gasista
- ANNULLATO: l'OrdineGasista è stato annullato dal Produttore
Credo sia inutile a livello di OrdineGassista.
Di sicuro complica l'implementazione.
Fa ridondanza con i stati OrdineProduttore
Ricordo che una gestione a stati esiste già al livello superiore: OrdineProduttore
l'unico stato non presente tra questi 2 livelli è la gestione del "CONFERMATO" introdotto al livello di OrdineGassista.
Cf. --> vedere ticket 27
arrivo al punto:
il Carrello è una visualizzazione degli OrdiniGasista
Gli OrdiniGasista non hanno stati.
Gli OrdiniGasista sono manipolabili in funzione dello stato del OrdineProduttore
comment:6 Changed 2 years ago by lfranc
- Status changed from new to closed
- Resolution set to sistemata
Sintesi: Al di là della terminologia (cfr. ticket #22) e dell'opportunità o meno di richiedere una conferma al Gasista (cfr. ticket #27), abbiamo convenuto che il concetto di Carrello (inteso come recipiente virtuale contenente i Prodotti che il Gasista intende ordinare) è utile ai fini dell'analisi e dell'implementazione della piattaforma web. Vedi anche la definizione presente nel Vocabolario.

All'interno di un GAS c'è il concetto di Carrello.
Il carrello di un gassista contiene una lista di prodotti (con quantità desiderate).
Il Carrello è multi produttore.
Chi dice Carrello non dice a priori che esiste una gestione di conferma.
Nei GAS la conferma di un Carrello si fa alla chiusura di un OrdineProduttore.
Cioè il gassista continua di vedere il listino prodotti ordinati ma non può più modificarli.
Durante il periodo di apertura dell'ordineProduttore in qualsiasi momento il Gassista manipola il suo carrello.
Se il Gassista compone i suoi ordini in tre giorni --> non vengono salvati 3 carrelli sul database, non viene manco salvato 1 carrello: ma solamente una lista di prodotti richiesti.
-->il carrello è una vista.
Posso vedere e modificare il carrello (la lista dei prodotti) per gli tutti gli OrdiniProduttore aperti
Posso vedere la lista dei prodotti che mi aspetta per la prossima consegna.
Posso vedere la lista dei prodotti filtrata per produttore
Posso consultare la lista dei prodotti del mese scorso
In questo progetto sarebbe opportuno di non creare nessun entità carrello.
Magari una pagina potrebbe portare il nome di Carrello.
Una stored procedure potrebbe chiamarsi GetBasket(GAS)
Carrello: un recipiente virtuale, specifico per ogni Gasista, che in ogni istante contiene l'insieme dei Prodotti selezionati dal Gasista nel corso delle sessioni di uso del Sistema (sia quella attuale che quelle precedenti) e non ancora confermati (ovvero non convertiti in un OrdineGasista); è una lista di VociDiCarrello.
Vocabolario
Carrello: un recipiente virtuale, specifico per ogni Gasista, che contiene una lista di VociDiCarrello.
Il carrello cambia secondo la view.
1 - Nella view dove un Gassista ordina (nella modalità "produttore") il carrello mostra tutte le VociDiCarrello per:
2 -Nella view può mostrare tutte le VociDiCarrello per varie o tutti Produttori
3 - La view puo mostrare un carrello composto dei soli VociDiCarrello per consegna
Il carrello è virtuale