18 messaggi dal 28 aprile 2006
Salve a tutti,

Vorrei sottoporvi una questione che sinceramente non so bene come affrontare.
Ho un sito di e-commerce che permette di riempire il carrello anche se l'utente è anonimo. Al momento della migrazione verso l'utente autenticato eseguo del codice che mi trasferisce il carrello. Può succedere però che l'utente autenticato abbia già un carrello in essere. In tal caso ho previsto che i prodotti vengano aggiunti.
Come posso notificare questa situazione? chiedere all'utente se aggiungere i prodotti nel carrello oppure se sostituire l'intero carello con quello dell'utente anonimo?

Questo è il codice nel file golbal.asax:

Public Sub Profile_OnMigrateAnonymous(ByVal Sender As Object, ByVal e As ProfileMigrateEventArgs)

' get the profile for the anonymous user
Dim anonProfile As ProfileCommon = Profile.GetProfile(e.AnonymousID)

' if they have a shopping cart, then migrate that to the authenticated user
If anonProfile.Carrello IsNot Nothing Then

If Profile.Carrello Is Nothing Then
Profile.Carrello = New xxx.Commerce.ShoppingCart()
Profile.Carrello.Items.AddRange(anonProfile.Carrello.Items)
End If

If Profile.Carrello.Items.Count = 0 Then
Profile.Carrello.Items.AddRange(anonProfile.Carrello.Items)
Else
If Profile.Carrello.Items.Count > 0 Then
For Each articolo As xxx.Commerce.ArticoloShoppingCart In anonProfile.Carrello.Items
Dim Indice As Integer = Profile.Carrello.IndiceDelProdotto(articolo.IdProdotto)
If Indice = -1 Then
Profile.Carrello.Items.Add(articolo)
Else
Profile.Carrello.Items(Indice).Quantita += articolo.Quantita
End If
Next
End If
End If
anonProfile.Carrello = Nothing
End If

ProfileManager.DeleteProfile(e.AnonymousID)
AnonymousIdentificationModule.ClearAnonymousIdentifier()

End Sub
brenzan77 wrote:
Come posso notificare questa situazione? chiedere all'utente se aggiungere i prodotti nel carrello oppure se sostituire l'intero carello con quello dell'utente anonimo?

non puoi semplicemente estrarre i prodotti nel carrello ed aggiungerli, senza sovrascriverne niente, a quello eventualmente già riempito dall'utente loggato?

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
18 messaggi dal 28 aprile 2006
Ti ringrazio per la risposta.
Infatti è quello che ho fatto finora.
Poni il caso, però, che l'utente abbia già inserito, precedentemente, qualcosa nel carrello da registrato ma non ha fatto l'acquisto. In questo caso il carrello rimane fino al momento in cui si logga di nuovo. E questo mi va benissimo.

Se, in un secondo momento, inserisce alcuni prodotti nel carrello nello stato anonimo e poi si logga mi piacerebbe notificare all'utente che il suo carrello (da registrato) non è vuoto e magari chiedergli se desidera che le nuove quantità vengano aggiunte o semplicemente sovrascritte. Posso far fare questa scelta all'utente con una finestra di dialogo prima di far migrare il carrello?

Grazie per la risposta.

Marco
brenzan77 wrote:
Se, in un secondo momento, inserisce alcuni prodotti nel carrello nello stato anonimo e poi si logga mi piacerebbe notificare all'utente che il suo carrello (da registrato) non è vuoto e magari chiedergli se desidera che le nuove quantità vengano aggiunte o semplicemente sovrascritte. Posso far fare questa scelta all'utente con una finestra di dialogo prima di far migrare il carrello?

non puoi intercettare quell'evento in modo diverso perchè non ha gui. quindi potresti fare semplicemente una collection "OldBaskets" con i vecchi carrelli ed aggiungerlo lì, tenendoti per ognuno la data di ultima modifica e dando al primo caricamento di una pagina avviso del fatto che il carrello gli è stato migrato e lo trova lì.
poi il resto te lo lascio immaginare...

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
18 messaggi dal 28 aprile 2006
Ho capito ... allora procederò in questo modo.

Ti ringrazio dell'aituo!

Marco

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.