Autor | Zpráva | ||
---|---|---|---|
gigin Profil * |
#1 · Zasláno: 22. 3. 2008, 08:09:55
Dělám eshop, a dělám ho sám, bez nějakých šablon nebo předpřipravených řešení.
Mám tento problém. Člověk přijde, vybere položku, zadá parametry a de facto přidá do košíku. V tabulce obrazně řečeno přibyde nový nákup a v jiné tabulce jedna položka tohoto nákupu. Nakonec člověk vloží svou adresu a tím se změní stav nákupu na Potvrzený a vidí ho prodejce. Co když ale zákazník v průběhu nákupu skončí? Mám existující session, v tabulce rozpracovaný nákup. Nevím jak odchytit, že člověk opravdu vycouval a hotovo. Session neskončí ani zavřením prohlížeče. Mám hlídat dobu nečinnosti? To bych myslím zvládl platností té session. Řekněme, že za hodinu vyprší platnost session a člověk přišel o rozdělaný nákup. Jak ale vyčistit ty tabulky? |
||
Joker Profil |
#2 · Zasláno: 22. 3. 2008, 09:31:59 · Upravil/a: Joker
gigin
No jednoduše, v tabulce bude sloupec, kde bude čas načtení poslední stránky. Platné záznamy jsou jenom ty, kde čas načtení poslední stránky > (teď - doba pro automatické odhlášení). Ani není nutné průběžně odmazávat záznamy z tabulky. edit: předpokládám teda, že informace o relaci (session) se ukládají i do databáze. Samotný košík by pak byl platný v případě, že je svázaný s platnou relací. |
||
gigin Profil * |
#3 · Zasláno: 22. 3. 2008, 09:38:16
Joker
To by pak znamenalo, že budu mít de facto čtyři stavy objednávky - nová, zákazník ji právě vytváří - vytvořená, vidí ji obchodník - dokončená - zákazník se na ni vykašlal ten čtvrtý stav bych tam nechtěl nechávat a cron jsem nikdy nepoužil, takže jednak neumím a jednak nevím jestli se dá spolehnout na to, že na každém hostingu běží. Takže bych ty staré promáznul třeba když vzniká nová session. Myslíš že ta úvaha je rozumná? |
||
Mastodont Profil |
#4 · Zasláno: 22. 3. 2008, 09:38:17
Co když ale zákazník v průběhu nákupu skončí?
No, třeba u některého zboží nemá jistotu a chce si dohledat nějaké informace apod. ... já jsem tedy zvyklý na to, že obsah košíku je uchován do dalšího přihlášení, pokud bych narazil na e-shop, který mi košík vymaže, tak tam bych prostě nekupoval. |
||
Joker Profil |
#5 · Zasláno: 22. 3. 2008, 09:43:30
ad Mastodont: Samozřejmě, pokud je zákazník přihlášený na nějaké svoje ID, je lepší navázat košík na to ID a potom nehraje roli, zda je zákazník přihlášený a v jaké relaci.
V některých e-shopech je ale možné založit košík i bez přihlášení (a potom by byl předpokládám navázaný na session ID) a pak bych postupoval tak jak jsem psal. |
||
gigin Profil * |
#6 · Zasláno: 22. 3. 2008, 09:47:12
jasně, vytvořím relaci, a ta de facto už přiskočí do databáze jako nová zakázka a na její ID se začnou věšet v jiné tabulce ty položky - zboží.
Po potvrzení se jen změní stav zakázky z rozpracovaná na potvrzená. |
||
gigin Profil * |
#7 · Zasláno: 22. 3. 2008, 09:51:01
Mastodont
Já to mám ale tak, že zákazník se namusí vůbec přihlašovat. Mám představu, že až komplet vymyslí nákup, tak vyplní údaje pro poštu a volitelně zadá login a heslo - pro případ, že by ještě někdy chtěl přijít a nechtěl by vypisovat. Já tu session samozřejmě nemusím mazat vůbec. Proto se na to ptám. |
||
Časová prodleva: 16 let
|
0