Autor | Zpráva | ||
---|---|---|---|
DomXXX Profil * |
#1 · Zasláno: 28. 11. 2012, 17:41:21
Chci se zeptat, jak byste obecně řešili problém, kdy uživatel přidává zboží do košíku, položky se ukládají do session zjednodušeně jako pole
$_SESSION['kosik'][] = array('id' => 'xyz', 'pocet_kusu' => '3', 'cena_kus' => '99') (uvažuji pro lepší přstup k položkám použít v session klíč jako id, uvidíme...) a mezi tím se změní cena zboží v DB. Tzn. cena zboží v košíku pak samozřejmě nesedí s cenou skutečnou -> košík by měl zobrazovat vždy správnou cenu (jednak v informační liště obchodu, která je stále viditelná, druhak v samotném košíku). Jak byste toto řešili?
Pravděpodobně budu postupovat tak, že při zobrazování hodnot v liště vyhledám pomocí položek v session aktuální ceny produktů v DB a cenu vypočítám podle těchto hodnot. V případě, že uživatel zobrazí košík, vždy budu ceny kontrolovat s DB a v případě změny (rozdíl ceny session - DB) bude nakupující upozorněn s tím, že cena byla tak a tak změněna... a session aktualizuji. Do databáze budu zřejmě muset přistupovat tak jako tak kvůli nazvu zboží a pod. Ještě mě napadá toto řešit kontrolou času nastavení ceny v DB, případně změny DPH (např. špatně přiřazené sazby) a nebo slevy, nedostupnosti a pod. s datem přidání položky do DB. To stejné by se dělo v rekapitulaci objednávky. Je otázka, zda toto (a co všechno) kontrolovat i při "odbouchnutí" odeslat objednávku... Další vecí je, kdy kontrolovat položky na skladě, kdy je blokovat, případně odečítat. Co si o tom myslíte, případně jak jste toto řešili? Diky moc za názory a odpovědi :-) PS: jinak snažím se to řešit objektově... AJAX momentálně neuvažuju |
||
Str4wberry Profil |
#2 · Zasláno: 28. 11. 2012, 21:22:48
Řešení vypadá na první pohled poměrně rozumně.
Ale na otázky by měl odpovědět spíš provozovatel daného systému, jelikož: 1) Zobrazení informace „zboží bylo zdraženo“ může negativně působit na zákazníka. Je potřeba si rozmyslet, jestli mu raději nenechat cenu, za kterou si ještě stačil objednat / přidat do košíku, než riskovat jeho ztrátu. 2) Stejně tak položky na skladě. Zde hraje roli hlavně férovost a strategie prodejce. Nebo jste zároveň provozovatel a zajímá vás to i z tohoto ohledu? |
||
DomXXX Profil * |
#3 · Zasláno: 28. 11. 2012, 23:47:45
Dobrý den,
díky za názor, prvně bych měl tedy říct, že přímo provozovatelem nejsem, ale jedná se o rodinný podnik/obchod, nicméně technické řešení online prodeje je na mně, mám co říct i do "online strategie". Zajimá mě tudíž názor i z pohledu provozovatele. 1) ano, máte pravdu, zní to nelibě, lepší by bylo - když už - něco ve smyslu "cena byla změněna", vím, že něco obdobného má Amazon, kdy se zákazník přihlásí k účtu např. za týden (ovšem, jedná se o zákazníka s účtem), je upozorněn na změnu cen v košíku, nebo "košíku přání", nejsem si momentálně jist kdy k tomuto upozornění dochází. Každopádně, navedl jste mě na myšlenku, že by se cena opravdu měnit v košíku nemusela (původní návrh implementace byl, že v session bude pouze id a počet kusů, cena by se zjišťovala "za běhu" a teprve pak mě napadla výše popsaná a ne moc pravděpodobná situace... že by se zákazník při změně ceny asi divil, proč se najednou zvedla suma, kterou má platit). Znamená to tedy, že v případě změny by v session zůstala cena původní, zákazník by si sice mohl všimnout, že zboží před 5 minutami stálo 100,-, nyní 200,-, případně 50,-, ale při změně kusů by zůstával na staré ceně, dokud by dané zboží z košíku neodstranil... předpokládám, že byste se klonil spíše k tomuto řešení, je to tak? V případě, že by byl zákazník registrovaným, košík by se ukládal do DB, pak bych při dalším přihlášení již na změnu cen upozornil (serióznější přístup), nebo minimálně ceny v DB košíku upravil i bez upozornění... stejně tak v případě, že je zboží vyprodáno a pod. 2) zde mě toto zajímá spíše okrajově, jelikož online obchod bohužel z technických důvodů není a jisou dobu nebude napojen přímo na sklad/pokladnu. Ale zajímá mě opět krajní situace (ideálně s napojením na sklad), kdy bude k dispozici opravdu poslední kus, který jde na dračku, jak a kdy tento kus zboží blokovat... jediné rozumné řešení si myslím, že je kontrola až při odesílání objednávky, v horším případě upozornění na nedostupnost po jejím odeslání a kontaktování zákazníka prodejcem s omluvou... Pokud někdo ví, jak se chvají v těchto situacích free shopy typu OpenCart a pod., uvítám též jakékoliv info :-) Děkuji za názory. PS: asi bylo vhodnější položit otázku do diskuze "Jak něco udělat?"... |
||
panther Profil |
#4 · Zasláno: 28. 11. 2012, 23:57:45
DomXXX:
blokovat daný produkt by bylo dobře už při vložení do košíku. Na skladě je poslední produkt, já si jej vložím do košíku a na webu by hned mělo být, že není dostupný skladem. Nelíbilo by se mi, kdybych si poslední kus schoval do košíku a někdo mi ho z něj ukradl než vyplním osobní údaje k objednávce. |
||
DomXXX Profil * |
#5 · Zasláno: 29. 11. 2012, 00:24:23
panther:
to je taky pravda, ale jak zjistit, že vypršela session s jistým košíkem? Momentálně mě nenapadá jednoduché řešení... |
||
Str4wberry Profil |
#6 · Zasláno: 29. 11. 2012, 08:53:55
Ad 1) Pro neregistrované uživatele doporučuji použít cookie s delší platností. Jinak ano, přijde mi z pohledu zákazníka přívětivější cenu nechat. Pokud se v průběhu nákupu změní, trochu to zavání snahou více zákazníka vyždímat.
Ad 2) Blokování by z pohledu zákazníka bylo opět ideální v momentě vložení do košíku. Řešení: u registrovaných je to jasné – tam se bude zboží v košíku vázat s konkrétním uživatelem, pro neregistrované se použije ona identifikační cookie a zbytek už je stejný. Je ještě potřeba zvážit, že si do košíku mohou zákazníci dávat zboží místo ukládání od oblíbených. A pokud si nákup rozmyslí, odebírat zboží nebudou, ale zavřou okno prohlížeče. |
||
Časová prodleva: 11 let
|
0