Nákupní košík   otázka

ASP.NET WebForms

Dobrý den,

s pomocí fóra jsem vytvořil webovou prezentaci a úspěšně ji umístil na server www.aquacoolers.com. Tato prezentace však nabízí funkce prohlížení produktů, možnosti registrace uživatelů, ale nemám dodělaný nákupní košík. Zatím po kliknutí na ikony pro vložení do košíku, předkládám uživateli informaci o tom, že systém se připravuje.

Bohužel se mi nedaří najít na internetu nějaký solidní návod jak vytvořit nákupní košík psaný pro ASP.NET ve VB.

Myslím, že bych si poradil s ukládáním dat do databáze pro již přihlášené uživatel (což znamená systém objednávek), ale mě se jedná pouze o samotný nákupní košík používaný před registrací a přihlášením. Vím, že se k tomuto využívá cookies nebo session, ale nevím, kterou variantu raději použít. Vím jak se dá ukládat hodnouta do cookies a jak ji zase načíst, ale nevím jak by měl ten košík vypadat (co přesně ukládat, zda teprve při prvním vložení zboží do košíku uložit nějaké pole se všemi položkami katalogu a nulovými hodnotami počtu kusů a k těm teprve přičítat atd.). Co se týče načtení hodnot z košíku do databáze při vytvoření objednávky, to už bych asi zvládnul ...

Jen ten prokletej košík ???

Děkuji za případné náměty

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pro nákupní košík se dá použít buď uživatelský profil (v případě, že je při nakupování uživatel vždy přihlášen), anebo session. Dalo by se to uložit i do cookies, ale ty mají omezenou kapacitu na jednotky kB, což by na větší nákup nemuselo stačit. Držet to v databázi je asi blbost, musel byste promazávat staré záznamy ručně, u session se o to postará ASP.NET runtime, což je jednodušší.

Jak konkrétně to udělat? Nejlepším řešením je udělat si třídu Kosik, při přidání položky do košíku se podívat, jestli už košík v session není, pokud ano, tak do něj jen něco přidat. Pokud ne, vytvořit ho tam a přidat do něj prdukt.

'vytvoření košíku
Dim k As New Kosik()
Session("Kosik") = k

'získání košíku ze Session
Dim k As Kosik = DirectCast(Session("Kosik"), Kosik)
If k Is Nothing Then
    'košík není v session
End If

Třída Kosik by měla obsahovat vlastnosti, které budete potřebovat, tzn. určitě Polozky typu List(Of Polozka), což je kolekce nakoupených položek. Polozka je struktura nebo třída, která má třeba vlastnosti Nazev, Cena, Id, Mnozstvi atd.

Aby se to dalo uložit do session, musíte třídě Kosik a asi i struktuře (nebo třídě) Polozka přidat atribut Serializable, doufám, že si to z hlavy pamatuji správně.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji za odpověď, pokusím se tím nějak prokousat ...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback