Tik-76.115 Toiminnallinen määrittely

Internet shoppailu

http://www.hut.fi/~trutanen/76115/vaihe5/toiminnallinen.html
Päivä Selitys Tekijä
24.10.1999 Ensimmäinen yritelmä Mika, Timo, Teemu
27.10.1999 Lisätty toimintoja Mika, Timo
29.10.1999 Lisätty kuvat Mika, Timo
01.11.1999 Korjattu kuvia, lisätty hakutoiminnot Timo
03.11.1999 Lisätty kappaleet 1,3,6 Lauri, Mika, Teemu, Timo
29.11.1999 Siirretty kuvat omaan hakemistoon Timo
12.03.2000 Muutettu dokumentin eri osia vastaamaan todellisuutta Timo


Sisällysluettelo


Yhteenveto
1. Johdanto
  1.1 Yleistä
  1.2 Terminologia
  1.3 Dokumentin sisältö
  1.4 Toteutuksen ja suunnitelman erot
2. Yleiskuvaus
  2.1 Ulkoiset liittymät
  2.2 Käyttäjät ja käyttöympäristö
  2.3 Rajoitteet
3. Tiedot ja tietokanta
  3.1 Tietokannat
4. Toiminnot
  4.1 Ostoskori
  4.2 Maksumoduli
  4.3 Tietokantakomponentti
5. Ulkoiset liittymät
  5.1 Ostosmoduli
  5.2 Maksumoduli
  5.3 Tietokantarajapinta
6. Muut ominaisuudet
  6.1 Toiminta virhetilanteissa
  6.2 Suorituskykyvaatimukset


Yhteenveto

Tässä dokumentissa kuvataan internet-kauppaohjelmiston toiminnot sekä käyttöliittymä. Ohjelmiston tarkoituksena on saada aikaan ohjelma, joka voidaan asentaa monenlaisten valmiiden tietokantojen päälle, ja jolla voisi myydä tuotteita tästä tietokannasta. Maksun suorittamiseen annetaan mahdollisuuksiksi Suomen yleisimmät pankkipalvelut sekä mahdollisuus maksaa myös luottokortilla.

Ostokset tehdään tavallisella WWW-selaimella salatun yhteyden yli sillä tavalla, että ohjelmisto etsii käyttäjän komentojen mukaan tietokannasta tarvittavia tuotteita ja/tai tuotelistoja sekä pitää yllä jokaisen käyttäjän henkilökohtaista ostoskoria, johon käyttäjä voi siis pudotella haluamiaan tuotteita valitsemansa kappalemäärän. Käyttäjän halutessa maksaa, avataan yhteys halutun pankin maksupalveluun.

1.Johdanto

Sisällysluettelo

1.1 Yleistä

Projektin sisältö ja tavoitteet käyvät ilmi aihe-esitteestä.

1.2 Terminologia

Terminologiasivulle

1.3 Dokumentin sisältö

Luku 1 on johdanto, jossa kuvataan projektin sisältö ja tavoitteet ja selvitetään lyhenteet ja käsitteet.

Luku 2 on yleiskuvaus, jossa kerrotaan järjestelmän ulkoiset liittymät, jotka ovat yhteydet tietokantoihin abstraktin rajapinnan kautta, yhteydet pankkien ja luottokunnan maksupalveluihin sekä WWW-pohjainen ostoskoriliittymä. Luvussa kuvataan myös järjestelmän käyttäjät ja käyttöympäristö sekä järjestelmälle asetetut rajoitteet.

Luku 3 kuvaa tietokantojen tietosisällön.

Luku 4 kuvaa järjestelmän keskeisien komponenttien toiminnallisuude n.

Luvussa 5 kuvataan tarkemmin järjestelmän ulkoisia liittymiä, erityisesti ostoskorin käyttöliittymä.

Luvussa 6 kuvataan järjestelmän muut ominaisuudet.

1.4 Toteutuksen ja suunnitelman erot

Suunnitellusta toiminnallisuudesta toteuttamatta jätettiin tarjoustuotteiden käsittely sekä lisää/poista valitut tuotteet.

2.Yleiskuvaus

Sisällysluettelo


Kuva 1: Ohjelmiston arkkitehtuuri

2.1. Ulkoiset liittymät

Järjestelmän ulkoiset liittymät voidaan jakaa kolmeen osaan: liittymät järjestelmän välityksellä myyvän kaupan olemassa oleviin tietokantoihin, liittymä kaupassa asioivalle ostajalle ja liittymät pankkien elektronisiin maksupalveluihin sekä luottokorttimaksun mahdollistavaan palvelimeen.

2.1.1. Tietokannat

Kaupan tietokantojen käyttöön järjestelmässä on tietokantakomponentti, jonka tehtävänä on huolehtia JDBC-yhteydestä tietokantaan ja joka kätkee tämän toiminnallisuuden kokonaan sisäänsä. Komponentti tarjoaa palvelut ylemmän tason toiminnoille, joiden avulla tietokannan kenttiin voidaan viitata halutuilla nimillä. Tällainen abstrakti nimi voi olla esimerkiksi tuoteolion tuotekuvaus. Kun tuotekuvausta kysytään, komponentti hakee tiedon JDBC-rajapinnan läpi tietokannan oikean taulun oikeasta sarakkeesta niin kuin määrittelytiedostossa on konfiguroitu. Tietokantojen abstrakti määrittely ja ristiviittaukset kenttänimien ja todellisten tietokannan kenttien välillä suoritetaan järjestelmän asennuksen yhteydessä.

2.1.2. Liittymä ostajalle

Ostaja käyttää järjestelmää www-selaimen välityksellä, siirtoprotokollana on siis http (tai https kauppiaan niin halutessa).

2.1.3. Maksupalvelut

Yhteys pankkiin ja luottokuntaan toimii salattuna, SSL:ää käyttäen. Järjestelmä tulostaa asiakkaan selaimeen pankin määritysten mukaisen lomakkeen, jonka lähettämällä asiakas pääsee pankin sivulle maksua varten. Maksamisen jälkeen pankin järjestelmä siirtää asiakkaan takaisin tietylle järjestelmän sivulle. Itse järjestelmä ei siis suoraan asioi pankin palvelimen kanssa.

Luottokortilla maksettaessa järjestelmä kysyy ostajalta ostovaiheessa luottokortin tiedot, lähettää maksun luottokunnalle ja palaa joko hyväksytty tai hylätty-sivulle maksun onnistumisesta riippuen.

2.2. Käyttäjät ja käyttöympäristö

Projektin tuottamalla järjestelmällä on kaksi käyttäjäryhmää: Järjestelmä asennetaan yrityksen palvelimelle, ja asennuksen yhteydessä konfiguroidaan yhteydet olemassa oleviin tietokantoihin. Erillistä ylläpitoliittymää ei ole, vaan ohjelmisto konfiguroidaan properties-tiedostoja muokkaamalla.
Ostajan käyttöympäristö on www-selain. Käyttöliittymää on hahmoteltu kohdissa
5.1.1 ja 5.2.1.

2.3. Rajoitteet

Järjestelmän tulisi toimia mahdollisimman monella www-palvelimella, ja sen tulisi osata käyttää kaikkia JDBC:tä (joko suoraan tai JDBC-ODBC Bridgen kautta) tukevia sql-kantoja. Minimivaatimus on toiminta Lotus R5-palvelimella, jota käytetään kehitykseen ja testaukseen. Lotusta käytetään myös tietokantapalvelimena.
Jotta palvelinriippumattomuus toteutuisi, koko järjestelmä ohjelmoidaan Javalla.
Järjestelmän pitää tuottaa ostajalle sivuja, jotka toimivat 4-sarjan www-selaimissa.

3.Tiedot ja tietokanta

Sisällysluettelo

3.1 Tietokannat

Järjestelmä vaatii toimiakseen kolme taulua, jotka voidaan määritellä sijaitsemaan joko samassa tietokannassa tai eri tietokannoissa. Tuotetaulussa on tiedot myytävistä tuotteista, asiakastauluun kirjoitetaan oston tekevän asiakkaan yhteystiedot ja tilaustauluun kirjataan kukin tilaukseen liittyvä tilausrivi. Tauluista edellytetään, että niissä on tietyt kentät halutun toiminnallisuuden saavuttamiseksi, mutta tauluissa voi olla myös asiakaskohtaisia eroja.

3.1.1 Tuotetaulu

Tuotetaulussa voi olla esimerkiksi seuraavat sarakkeet:
 
Tuotetunnus string
Tuotteen nimi string
Tuotteen kuvaus string
Hinta currency
Tarjoustuote boolean
Tuotekategoria<n> string
Muita kenttiä

Tuotetunnus

Tuotetunnus identifioi tuotteen ja sen avulla tilausrivit linkitetään haluttuun tuotteeseen. Tämä tieto on pakollinen järjestelmän toiminnan kannalta.

Tuotekategoria

Tuotteella voi olla useampia kategoriakenttiä, jotka hierarkisesti määräävät tuotteen kategorian. Esimerkiksi tuotteen pääkategoria voisi olla "Elintarvikkeet" ja ensimmäinen alikategoria "Maitotuotteet".

Tarjoustuote

Tarjoustuotelippu kertoo, onko tuote alennustuote tai kampanjatarjous. Ostoskoriin toteutetaan mahdollisesti lisäpiirteenä tätä kenttää hyödyntävä tarjoustuotteiden selaus.

Muita kenttiä

Demokäyttöliittymään toteutetaan taulukossa mainittujen kenttien lisäksi muita yleisimmin tarvittavia kenttiä, jotka ovat tuotteen väri, kuva, url lisätietoja varten, pakkauskoko, saatavuustieto, varastosaldo, toimitusaika, tavarantoimittaja, valmistaja, tuoteryhmä ja tuoteryhmäkuvaus. Muitakin kenttiä voidaan konfiguroida asiakaskohtaisesti.

3.1.2 Asiakastaulu

Asiakastaulu sisältää ainakin seuraavat sarakkeet:
 
Asiakastunnus string
Sukunimi string
Etunimi string
Katuosoite string
Postinumero string
Postitoimipaikka string
Maa string
Puhelinnumero string
Sähköpostiosoite string

Asiakastunnus

Asiakastunnusta käytetään asiakkaan yksilöimiseen tilausriveillä. Tämä kenttä on pakollinen järjestelmän toimivuuden kannalta.

Yhteystiedot

Asiakkaan nimi- ja osoitetiedot ovat pakollisia, jotta tilattu tuote voidaan toimittaa perille. Puhelinnumero- ja sähköpostiosoitekentät ovat periaatteessa valinnaisia, mutta ovat hyödyllisiä mahdollisten tilauksessa olevien epäselvyyksien selvittämiseksi.

Muut kentät

Taulukossa olevat kentät toteutetaan demokäyttöliittymään, mutta on myös mahdollista konfiguroida järjestelmää siten, että käyttöön voidaan ottaa muitakin kenttiä.

3.1.3 Tilaustaulu

Tilaustaulu sisältää seuraavat sarakkeet:
 
Tilaustunnus string
Asiakastunnus string
Tuotetunnus string
Kappalemäärä integer
Tilauspäivämäärä date
Maksu vastaanotettu boolean

Tilaustunnus, Asiakastunnus, Tuotetunnus

Tilaustunnus yksilöi tilauksen ja tilaustunnusta käytetään esimerkiksi verkkomaksulomakkeen lisätietokentässä. Saman tilauksen eri tilausriveillä on siis sama tilaustunnus. Tilausrivillä olevat asiakastunnus ja tuotetunnus toimivat linkkeinä toisiin tauluihin.

Maksu vastaanotettu

Tämä kenttä on tarpeellinen, jos maksua ei saada pankin palvelulta varmennettua. Pankkipalveluiden varmennetiedon saaminen ei ole aina sataprosenttisen varmaa, joten joissakin tapauksissa voi olla tarpeellista tarkistaa manuaalisesti maksukyselyllä tai tiliotteesta maksun saaminen. Tarkistettavien tilausten osalta tässä kentässä on arvo false.

4.Toiminnot

Sisällysluettelo
Taulukossa olevat toiminnot on priorisoitu käyttäen seuraavaa kolmiportaista järjestelmää: Seuraavassa taulukossa on luetteloitu järjestelmän kussakin kehyksessä käytössä olevat toiminnot.

4.1 Ostoskori

Nimi Prioriteetti Syötteet Toiminta Tulosteet
Yleiset Toiminnot-kehys
Ohje 3 Ei Avaa käyttöohjesivun Tuotekehykseen Ei
Tuotteet 1 Ei Kutsuu toimintamodulin listaa_tuotteet ja listaa_kategoriat-funktioita parametreina aktiivinen kategoria, sekä ostoskori-olion listaa_sisältö funktiota. Em. funktioiden antamat HTML-sivut kirjoitetaan paikoilleen Ostoskehykseen ja Tuotekategoriat-kehykseen.
Ostoskori 2 Ei Kutsuu ostoskori-olion listaa_sisältö funktiota. Em. funktion antama HTML sivu kirjoitetaan Ostoskehykseen.
Pääsivulle 3 Ei Palaa yrityksen pääsivulle. Ei
Tarjoukset 3 Ei Avaa Tuotekehykseen listan tarjoustuotteista. Ei
Haku 2 Ei Avaa hakudialogin Tuotekehykseen. Ei
Hakudialogi
Hakukentät 2 Hakuehdot Käyttäjä täyttää hakukenttiin haluamansa hakuehdot Ei
Suorita Haku 2 Ei Napista suoritetaan haku ruudussa olevien kenttien tietojen perusteella. Ruudulle tulee lista hakuehdon täyttävistä tuotteista.
Takaisin 2 Ei Napista keskeytetään hakutoiminnot ja palataan takaisin. Ei
Tuotekategoriat-kehys
Laajenna Kategoria 1 Kategoria Avaa kohdekategorian alikategoriat Tuotekategoriat-, sekä Tuotekehyksessä. Lisäksi supistaa edellisen aktiivisen kategorian. Ei
Tuotekehys, Kehyksessä tuotelista
Tuote-esittely 2 Tuote Avaa valitun tuotteen tuote-esittelyn Tuotekehykseen. Ei
Kappalemäärä 1 Tuote, kappalemäärä Kappalemäärä-ikkunaan halutun tuotteen riville syötetään määrä joka halutaan ostaa. Ei
Lisää tuote ostoskoriin 1 Tuote Napista lisätään ennalta syötetty kappalemäärä valittua tuotetta ostoskoriin. Jos määrää ei ole asetettu, lisätään yksi erä. Haluttu kappalemäärä tuotetta putoaa ostoskoriin. Kokonaislaskun summa päivittyy.
Tuotekehys, Kehyksessä tuote-esittely
Takaisin Tuotelistaan 1 Ei Lataa Tuotekehykseen tuotelistan aktiivisesta kategoriasta Ei
Kappalemäärä 1 Tuote, kappalemäärä Kappalemäärä-ikkunaan halutun tuotteen riville syötetään määrä joka halutaan ostaa. Ei
Lisää tuote ostoskoriin 1 Tuote Napista lisätään ennalta syötetty kappalemäärä valittua tuotetta ostoskoriin. Jos määrää ei ole asetettu, lisätään yksi erä. Haluttu kappalemäärä tuotetta putoaa ostoskoriin. Kokonaislaskun summa päivittyy.
Tuotekehys, Kehyksessä Ohjeet
Takaisin 1 Ei Avaa edellisen näkymän Tuotekehykseen. Ei
Ostoskorikehys
Kappalemäärä 1 Tuote, kappalemäärä Kappalemäärä-ikkunaan halutun tuotteen riville syötetään määrä joka halutaan ostaa. Ei
Poista tuote korista 1 Tuote Poistaa valitun tuotteen ostoskorista Ostoskorin sisältö päivittyy Ostoskorikehykseen. Kokonaislaskun summa päivittyy.
Tyhjennä Ostoskori 2 Ei Avaa dialogi-ikkunan, jolla varmistetaan että käyttäjä haluaa tyhjentää ostoskorinsa. Kokonaislaskun summa päivittyy
Tilaa tuotteet 1 Ei Avaa maksumoduliin kuuluvan maksuikkunan, josta käsin voidaan ostaa ostoskoriin valitut tuotteet. Ostoskehykseen avautuu maksuikkuna, Tuotekategoriat-, sekä Ostoskorikehykset tyhjennetään.

4.2 Maksumoduli

4.2.1 Modulin yleiskuvaus


Kuva 2: Maksumodulin toimintakaavio

Maksumodulin ikkunat avataan Ostoskehykseen, Tuotekategoriat-kehys on tyhjä.

4.2.2 Modulin toiminnot

Nimi Prioriteetti Syötteet Toiminta Tulosteet
Maksukuittilomake
Hyväksy tilaus 1 Ei Asiakas tarkistaa syöttämänsä tiedot ja hyväksyy maksun. Aloitetaan valittu maksutapahtuma.
Takaisin 1 Ei Valittua tilausta ei hyväksytä maksettavaksi. Palataan asiakastietolomakkeeseen.
Maksutavan Valinta 1 Maksutapa Asiakas valitsee jonkun annetuista maksutavoista. Tämä napin painallus käynnistää automaattisesti maksutapahtuman, eli ohjelma suorittaa tarkistuksen annetuille asiakastiedoille, ja jos ne kelpaavat, yritetään suorittaa maksu valitulla tavalla. Jos ne olivat puutteelliset, palataan asiakastietolomakkeeseen ja annetaan ilmoitus tietojen puutteellisuudesta. Onnistunut Maksu tai Epäonnistunut Maksu-ikkuna avautuu.
Onnistunut tai Epäonnistunut Maksu
Pääsivulle 2 Ei Linkistä avautuu firman kotisivu. Ei

4.3 Tietokantakomponentti

4.3.1 Komponentin yleiskuvaus

Tietokantakomponentti huolehtii JDBC-yhteydestä järjestelmän ja tietokannan välillä. Tietokantayhteydet kuvataan määrittelytiedoston avulla. Tiedosto luetaan käynnistyksen yhteydessä. Määrittelytiedostoa muokataan ensivaiheessa millä tahansa tekstieditorilla.

Määrittelytiedostossa kuvataan seuraavat asiat:

Tietokantayhteys

Tietokantayhteys määritellään kullekin taululle (tuote, asiakas ja tilaus) erikseen tai näille yhteisesti. Erillinen määrittely on tarpeen, koska mahdollisesti halutaan, että järjestelmä ei koske yrityksen tuotetiedot sisältävään tietokantaan, vaan tilaukset kirjataan erilliseen tietokantaan. Tietokantayhteys määritellään normaalin JDBC-rajapinnan tarpeiden mukaan, joihin kuuluu esimerkiksi käyttäjätunnus, salasana, tietokannan nimi jne.

Suunnittelussa on otettava huomioon myös mahdollinen uusien taulujen tarve, eli järjestelmän tulee olla laajennettavissa tältä osin.

Kentät

Tietokantakomponentin järjestelmälle tarjoamat kentät tulee luetella määrittelytiedostossa ja näiden ja tietokannan kenttien välille luodaan ristiviittaukset, jotta komponentti pystyy ohjaamaan halutun kentän kyselyn oikeaan JDBC-kenttään. Pakollisilla kentillä (kuten esimerkiksi Tuotetunnus) on kiinteä nimi, jota ei voi muuttaa.

4.3.2 Määrittelytiedosto

4.3.3 Komponentin toiminnot

FUNC3001 Tuoterivien haku, prioriteetti 1

Toiminto suorittaa tuoterivien haun tuotetietokannasta haluttujen hakuehtojen mukaisesti. Hakuehtoina voidaan antaa tuotetunnus, tuotekategoria ja tuotteen nimi. Hakuehtojen yhdistelmät ovat sallittuja. Tuloksena saadaan joukko tuoterivejä, joita voidaan selata. Tulosjoukko on lajiteltu ensisijaisesti tuotekategorian ja toissijaisesti tuotteen nimen mukaiseen järjestykseen.

Prioriteetilla 2 toteutetaan hakuehdot yleisemmällä tasolla. Hakuehdoksi voidaan tällöin antaa mikä tahansa yleistä tyyppiä oleva (merkkijono, luku, boolean-arvo, päiväys) tuotetietokannan kenttä, joka on tietokantamäärittelyssä määritelty. Näiden avulla hakua voidaan rajata tarkemmin ja sovittaa asiakkaan tuotetietokannan tarpeisiin. Tarpeellisia hakukenttiä voisivat olla esimerkiksi tuotteen valmistaja tai tarjoustieto.

FUNC3002 Tuoterivien selaus, prioriteetti 1

Toiminto selaa haettuja tuoterivejä. Haetuista tuotteista päästään sen tuoterivin tuotetietoihin käsiksi, jonka kohdalla ollaan selauksessa. Selauksessa on mahdollista seuraavan ja ensimmäisen tuoterivin kohdalle siirtyminen. Alemmalla prioriteetilla voidaan toteuttaa myös vapaampi siirtyminen.

FUNC3003 Tuotetietojen haku, prioriteetti 1

Toiminnolla haetaan sen tuotteen tietoja kenttä kerrallaan, jonka kohdalla selauksessa ollaan. Toiminnolle annetaan syötteenä halutun kentän nimi, ja paluuarvona saadaan kentän sisältö, mikäli kenttä löytyy ja se on tietokantakomponenttiin määritelty.

FUNC3004 Tuotekategorioiden haku, prioriteetti 1

Toiminto hakee tuotekategoriat tietokannasta, jotta tuotteita voitaisiin selata kategorioittain.

FUNC3005 Asiakastietojen lisäys, prioriteetti 1

Toiminto lisää uuden asiakkaan tiedot asiakastietokantaan. Syötteinä annetaan asiakkaan tietojen kyselylomakkeella olevat tiedot. Palautteena saadaan uuden asiakkaan asiakastunnus, jota on hyödynnettävä varsinaisen tilauksen tallennuksessa.

FUNC3006 Tilausrivin lisäys, prioriteetti 1

Toiminto lisää tilausrivin tilaustietokantaan. Syötteinä annetaan ostoskorin yhden "rivin" tiedot, jotka ovat asiakastunnus, tuotetunnus ja kappalemäärä. Ensimmäisellä kutsukerralla toiminto luo tilaukselle tilaustunnuksen, joka annetaan myös toistuvilla kutsukerroilla syötteenä, kun tilaukseen lisätään enemmän rivejä.

5.Ulkoiset liittymät

Sisällysluettelo

5.1 Ostosmoduli

5.1.1 Käyttöliittymä

Ostosmoduli avaa asiakkaalle (ostajalle) www-sivun josta voi ostaa tuotetieto- kannassa olevia tuotteita. Sivu jakautuu kahteen pääosaan, Ostoskehykseen (sivun oikealla puolella) ja Navigointikehykseen (sivun vasemmalla puolella). Lisäksi kumpikin tällainen suuri kehys jakautuu vielä kahteen osaan, Navigointikehyksen ylälaidassa on Yleiset Toiminnot-kehys ja alalaidassa Tuotekategoriat-kehys. Ostoskehyksen yläosassa taas sijaitsee Tuotekehys ja alalaidassa Ostoskori-kehys. Yleiset Toiminnot-kehys pysyy paikallaan koko ajan kun systeemiä käytetään, Tuotekategoriat-kehyksen sisältö muuttuu kun asiakas avaa kehyksessä oleville kategorioille alakategorioita. Kehysten mittasuhteet ovat valittavissa asetuksilla.

5.1.1.1 Yleiset toiminnot

Yleisiin toimintoihin kuuluvat seuraavat, jokaiselle oma nappi:


Kuva 3: Hakuikkuna


Kuva 4: Ohjeikkuna

5.1.1.2 Tuotekategoriat

Kehyksessä on lista tuotekategorioista, joista jokaisen alikategoriat saadaan näkyviin kategoriaa klikkaamalla. Alikategorioita voidaan edelleen laajentaa alikategorioiksi jne. riippuen tietokannan rakenteesta ja siitä, miten järjestelmä on konfiguroitu.


Kuva 5: Kategoria avattu

5.1.1.3 Tuotteet


Kuva 6: Normaali tuotelista

Tässä kehyksessä on lista tuotteista jotka kuuluvat Tuotekategoriat-kehyksessä valittuun (ala)kategoriaan. Tuotteista näytetään konfiguroinnin perusteella valittuna esimerkiksi nimi, kappalehinta, paino/kappalemäärä ja kokonaismäärä. Lisäksi näytetään kenttä, johon voidaan syöttää montako kappaletta halutaan sekä nappula, jolla ko. rivin tuote siirretään ostoskoriin. Jokaisen tuotteen nimi on samalla toimintonappula, joka avaa ko. tuotteen pidemmän esittelyn Tuotekehykseen.


Kuva 7: Tuote-esittely

Esittelyikkunassa on nappula josta pääsee takaisin edelliseen tuotelistaan. Lisäksi voidaan näyttää myös joitain muita ominaisuuksia kuten esimerkiksi minimiostosmäärä, väri, lisälaitteet jne. Nämä ominaisuudet riippuvat käytettävästä tietokannasta ja asiakasyrityksen vaatimuksista. Ikkunassa voidaan myös lisätä kyseessäolevaa tuotetta koriin.

5.1.1.4 Ostoskorin sisältö

Tämä kehys sisältää tiedot tuotteista jotka ovat omassa ostoskorissa. Formaatti on sama kuin ylläolevassa Tuotekehyksessä. Kehyksessä voidaan muuttaa ostettavan tuotteen lukumäärää. Joka rivillä on myös erillinen nappula, joka poistaa ko. rivillä olevan tuotteen ostoskorista. Lisäksi kehyksessä on nappula koko ostoskorin tyhjentämiseen, sekä nappula josta ostetaan valitut tuotteet. Tämän napin painaminen avaa maksuikkunan. Tästä lisää seuraavassa kappaleessa.

5.1.2 Yhteys maksumoduliin

Ostoskorikehyksessä on nappi, jota painamalla päästään maksamaan ostokset. Nappia painamalla avautuu maksumodulin sivu, jonka sisältö on tarkennettu alla.

5.1.3 Yhteys tuotetietokantaan

Yhteys tuotetietokantaan otetaan erillisen rajapinnan kautta. Rajapinnassa on tätä varten suunniteltu luokka, joka huolehtii siitä, että ostosmodulin ei tarvitse tuntea tietokannan sisäistä rakennetta.

5.2 Maksumoduli

5.2.1 Käyttöliittymä

5.2.1.1 Yleiskuvaus


Kuva 8: Maksuikkuna

Kun asiakas on valinnut haluamansa tuotteet ostoskoriin ja painaa "Tilaa"-nappulaa, avataan asiakastietojen kyselylomake. Asiakas täyttää lomakkeelle yhteystietonsa ja valitsee haluamansa maksupalvelun. Valinnan jälkeen asiakas siirtyy pankin sivulle, jossa hän maksaa laskun pankin omia järjestelmiä käyttäen. Kun laskunmaksu on suoritettu, asiakas palautetaan takaisin kaupan sivuille ja maksetusta laskusta tulee kuittaus. Epäonnistuneesta tai peruuntuneesta maksusta ilmoitetaan käyttäjälle. Onnistuneesta maksusta kiitetään asiakasta ja kerrotaan mahdollisesti muita tietoja.

5.2.1.2 Asiakastietolomake

Lomakkeen elementit:

Kentät:

Nappulat (maksutavan valinta): Asiakastietolomakkeella kysytään kaikki tarvittavat asiakas-, yhteys- ja toimitustiedot. Tämän jälkeen asiakas valitsee haluamansa maksutavan. Maksutavan valintaa edeltää lomakkeen kenttien sisällön tarkistus: kaikki pakollisiksi merkityt kentät tulee täyttää järkevillä arvoilla. Jos tarkastusfunktio havaitsee jonkin kentän sisällön olevan puutteellisesti täytetty tai puuttuvan kokonaan, palaa se asiakastietolomakkeelle ja kertoo asiasta käyttäjälle. Jos lomake läpäisee tarkastusfunktion testin, aloitetaan varsinainen maksutapahtuma asiakkaan valitsemalla maksutavalla.

5.2.1.3 Ilmoitus onnistuneesta maksutapahtumasta

Lomakkeen elementit: Tällä sivulla kerrotaan asiakkalle että tilaus on hyväksytty ja kiitetään asiakasta. Lisäksi näytetään asiakkaan antamat yhteystiedot, tilausnumero, sekä tilauksen sisältö, jolloin asiakas voi tulostaa itselleen "kuitin" tapahtumasta. Loppuun laitetaan linkki esim. yrityksen etusivulle.

5.2.1.4 Ilmoitus epäonnistuneesta maksutapahtumasta

Lomakkeen elementit: Jos maksutapahtuman yhteydessä tapahtuu häiriötä, eikä järjestelmä saa kuittausta asiakkaan valitsemalta maksujärjestelmältä, ilmoitetaan asiakkaalle tapahtuneesta. Vaikka maksutapahtuma onnistuisikin, ei ainakaan pankkien maksujärjestelmä anna 100 prosentin varmuudella kuittausta. Tällöin kerrotaan asiakkaalle tapahtuneesta ja todetaan, että jos maksu on suoritettu, on tilaus tapahtunut vaikkei se vielä järjestelmässä näy.

5.2.1.5 Ohjeet

Nappulaa painamalla avautuu ikkuna, jossa on maksutapahtumien ohjesivu.

5.2.2 Tietoliikenneyhteydet

Kaikki maksuliikenne tapahtuu Internetin yli TCP/IP protokollaa käyttäen. Yhteys suojataan käyttäen SSL:ää.

5.2.2.1 Pankkien yhteydet

Pankien verkkomaksupalvelut Eri pankkien tarjoamien elektonisten maksutapojen toteutukset eroat toisistaan varsin vähän. Kaikissa käytettään salaukseen SSL:ää ja laskun tiedot linkitetään pankin järjestelmiin HTML -kielen FORM-tietoryhmässä käyttäen POST-metodia.

5.2.2.2 Luottokunta Payment Gateway

Luottokunnan yhteys toimii samaan tapaan kuin pankkienkin.

6. Muut ominaisuudet

Sisällysluettelo

6.1 Toiminta virhetilanteissa

Mikäli ohjelman ajovaiheessa tapahtuu virheitä, käytetään Javan omaa poikkeuksenkäsittelyä. Ostajalle ei saa näkyä puolikkaita sivuja tai mystisiä virheilmoituksia, vaan helposti ymmärrättevä virheviesti.

Koska ostoskori ainakin tässä vaiheessa perustuu Javan sessioon, käyttökatkos palvelimessa tyhjentää ostettujen tavaroiden listan. Muuta haittaa lyhyestä katkoksesta ei ole, servletit osaavat alustaa itsensä uudestaan käyttökuntoon.

Tietokantojen virheet hoidetaan samalla tavalla, eli javan poikkeuskäsittelyllä.

6.2 Suorituskykyvaatimukset

Järjestelmää suunniteltaessa on yksi lähtökohdista ollut komponentin toimivuus mahdollisimman erilaisien kantojen päällä. Tämän takia suorituskyky on yksi tärkeimmistä kriteereistä turvallisuuden ohella. Järjestelmän tulee toimia yhtähyvon pienen kaupan kuin suuren kansainvälisen ketjun uuden tuotteen lanseerauskamppanjassa, jossa asiakkaita on useita tuhansia päivässä.

Käytettävyys ja käyttöliittymä luodaan template:lla, joilla lopullinen ulkonäkö sekä toimintojen sijainti määritetään.

Ylläpitotyötä ohjelmistossa ei alkukonfiguroinnin jälkeen ole. Tietysti syntyneet tilaukset tulee käsitellä, mutta se ei vaikuta ohjelmiston toimintaan.