Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ostoskorin toteutus

Sivun loppuun

Olli [23.09.2011 16:30:30]

#

Hei,
olisiko tämä hyvä tapa toteuttaa ostoskori, eli istuntoon tallennetaan array johon on laitettuna nimi ja kpl-määrä.

$_SESSION['cart'] = array(
1 ==> 2,
2 ==> 1
);

Tämä siis tarkottaisi että tuotetta 1 on 2 kpl ja tuotetta 2 on 1 kpl

Olisiko olemassa joku toinen vielä parempi tapa?

Grez [23.09.2011 16:43:12]

#

Itse saattaisin harkita myös tuotteiden nimien ja hintojen tallentamista, jos kerran halutaan että ostoskori ei ole tietokannassa.

Mielestäni on kaksi vaihtoehtoa, ostoskori on kokonaan istunnossa tai kokonaan tietokannassa. Jos näitä sekoittaa, niin lopputuloksena on vaan hankalampi ja huonompisuorituskykyinen ratkaisu, kuin kumpi tahansa noista kahdesta.

Olli [23.09.2011 18:47:42]

#

No ajattelin niin että silloin kun listataan ostoskorissa olevat tuotteet niin haetaan tuote kerrallaan tuotteen tiedot tietokannasta.

Jos säilyttäisi tiedot kokonaan istunnossa, niin sitten jos tuotteen nimeen/hintoihin tulee muutoksia niin ne eivät päivity käyttäjälle.

Grez [23.09.2011 19:04:00]

#

No miksi sitten et säilyttäisi ostokoriakin kannassa?

Olli [23.09.2011 19:20:49]

#

No sitten olisi vaikeampi yksilöidä eri käyttäjät. Menisi liian monimutkaiseksi - joutuisi tekemään esim kirjautumisen ja muut eivät voisi pitää ollenkaan ostoskoria

Macro [23.09.2011 19:54:44]

#

Voithan tallentaa keksiin jonkun uniikin tunnisteen, ja liität sen kannan tietoihin ostoksista.

Metabolix [23.09.2011 20:36:18]

#

Nyt olet tallentanut istuntoon tuotteiden id:t. Jos kori on kannassa, voit tallentaa istuntoon korin id:n.

Tietokantaan tallentaminen on välttämätöntä, jos tuotteita on rajallisesti ja haluat, että ne varataan jo koriin laitettaessa (toki mieluiten määräajaksi).

Olli [24.09.2011 12:49:06]

#

Kiitoksia näistä vastauksista. Harkitsen vielä asiaa.

Nyt olisi kuitenkin uusi kysymys - mikä olisi järkevin tapa tehdä seuraavat vaiheet:
Kun käyttäjä on kerännyt ostoskorin, mennään sivulle jossa käyttäjä antaa henkilötietonsa (nimi, puh, email, osoite jne). Tämän jälkeen olisi tarkoitus näyttää ns. viimeinen vahvistus tilauksesta jossa käyttäjä näkee tilauksen tuotteet ja yhteissumman. Siellä olisi nappi jossa vahvistetaan tilaus tai peruutetaan se.

Ajattelin että vasta painettaessa tuota viimeistä "vahvista tilaus" nappia tarkistetaan löytyykö tuotetta vielä varastosta (toki tarkistus tehdään jo ostoskoriin lisättäessä, mutta siinä tapauksessa että joku muu kerkeää sillä aikaa tehdä oman tilauksen).
Olisiko hyvä tallentaa käyttäjän tiedot istuntoon ja sieltä lukea ne kantaan kun vahvistusnappia painettu?

Ja miten lomakkeen validointi kannattaisi toteuttaa?

Olisiko tämä esim hyvä validointi skripti: http://www.html-form-guide.com/php-form/php-form-validation.html

Triton [24.09.2011 12:53:55]

#

No lomakkeen validointi onnistuu ehkä helpoiten käyttämällä jotain valmista Validointi-komponenttiä. Esim. Zend Frameworkistä löytyy mielestäni erittäin hyvä systeemi tätä varten...

makumaku [24.09.2011 12:59:32]

#

Olli kirjoitti:

Ajattelin että vasta painettaessa tuota viimeistä "vahvista tilaus" nappia tarkistetaan löytyykö tuotetta vielä varastosta (toki tarkistus tehdään jo ostoskoriin lisättäessä, mutta siinä tapauksessa että joku muu kerkeää sillä aikaa tehdä oman tilauksen).

Itseä ainakin ärsyttäisi jos olisin ruokakaupassa ja olisin ottanut hyllystä viimeisen leipäpussin ostoskäärryyn, ja sitten kassalla huomaisin että ei prkl..juuri ostoksensa maksanut asiakas olikin sen jotenkin saanut minun kärrystä itselleen.

Grez [24.09.2011 15:06:39]

#

Toisaalta olisi sekin ärsyttävää, että joku toinen ottaisi hyllystä sen viimeisen leipäpussin ostoskärryynsä, häipyisi kaupasta jättäen kärryn lojumaan käytävälle ja siinä kärryssä oleviin tavaroihin ei saisi koskea vaikkapa 6 tuntiin.

punppis [26.09.2011 18:56:50]

#

Grez kirjoitti:

Toisaalta olisi sekin ärsyttävää, että joku toinen ottaisi hyllystä sen viimeisen leipäpussin ostoskärryynsä, häipyisi kaupasta jättäen kärryn lojumaan käytävälle ja siinä kärryssä oleviin tavaroihin ei saisi koskea vaikkapa 6 tuntiin.

6 tuntia on turhan pitkä aika tuollaiselle. Itse laittaisin max. 15/30 minuuttia, jonka jälkeen varaus poistuu mutta ostoskori säilyy silti kannassa.

Riippuen toki kuinka paljon tuotetta on jäljellä. Jos on runsaasti niin sama se nyt on vaikka varata 24 tunniksi, asiakashan siitä vain tykkää :)

Grez [26.09.2011 19:12:11]

#

Toisaalta vaikka olisi 15/30 minuuttia, niin silti sille toiselle näkyisi sen aikaa vaan että "tuotetta ei ole vapaana". Vai pitäisikö olla joku että "tuotetta ei vapaana, mutta jollei toinen asiakas tilaa sitä 8,5 minuutin kuluttua, se vapautuu" :D


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta