Autor Zpráva
DomXXX
Profil *
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
Ř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 *
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
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 *
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: