Ticket #26 (closed compito: sistemata)

Opened 4 years ago

Last modified 3 years ago

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:1 follow-up: ↓ 2 Changed 4 years ago by dom_thual

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:

  • Gassista (--> GAS)
  • OrdineProduttore nello stato aperto ( --> Produttore)

2 -Nella view può mostrare tutte le VociDiCarrello per varie o tutti Produttori

  • Gassista (--> GAS)
  • [0..n] OrdineProduttore nello stato aperto ( --> Produttore)

3 - La view puo mostrare un carrello composto dei soli VociDiCarrello per consegna

  • Gassista (--> GAS)
  • [0..n] OrdineProduttore nello stato aperto ( --> Produttore)
  • Per data scadenza


Il carrello è virtuale

Last edited 4 years ago by lfranc (previous) (diff)

comment:2 in reply to: ↑ 1 ; follow-up: ↓ 3 Changed 4 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 4 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 4 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

Last edited 4 years ago by lfranc (previous) (diff)

comment:5 Changed 3 years ago by lfranc

  • Component changed from preparazione to analisi

comment:6 Changed 3 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.

Note: See TracTickets for help on using tickets.