• Nenhum resultado encontrado

Ohjelmointirajapinta

No documento Monikanavainen e-kaupankäynti (páginas 43-49)

38

4.2.1 Tuoterajapinta

Tuoterajapinnassa tulee olla mahdollisuus hakea listaus kaikista myynnissä ole- vista tuotteista ja tietyn yksittäisen tuotteen tiedot. Yksittäisen tuotteen osalta rajapinnan tulee palauttaa tuotteen tiedot, kuten:

• Tuotteen perustiedot: tuote-id, nimi, kuvaus, alkuperäinen hinta, alennettu hinta, hintatietojen ALV-osuudet ja varastosaldo.

• Tuotevarianttien tiedot, jotka on eroteltu SKU:n (Stock Keeping Unit) mu- kaan. SKU on tuotteen yksilöivä tunniste. Jokaisen variantin tiedoista tu- lee selvitä variantin määrittävät ominaisuudet sekä niiden arvot. Variantin määrittäviä ominaisuuksia voivat olla esimerkiksi väri tai koko. Jokaisel- la variantilla voi ominaisuuksien lisäksi olla poikkeavat tiedot varastosal- don, hintatietojen ja kuvauksen sekä tuotekuvien suhteen. Jos tuotteella ei ole useampaa varianttia, niin tuotteen tiedoissa näytetään ainoastaan yksi SKU-lohko, jossa on edellä mainitut tiedot.

• Päätuotteen ja mahdollisten tuotevarianttien kuvat. Tuotekuvat käsitellään asiakassovelluksen päässä haluttuun kuvakokoon.

• Tuotteella voi olla 1-n kappaletta tuoteattribuutteja. Esimerkiksi tietoko- neella voisi olla tuoteattribuutti "Kiintolevyn koko", jonka arvo olisi "500 Gt".

• Tuotteen tuotekategoriat.

Tuoterajapinnan toteutuksessa tulee ottaa huomioon verkkokaupassa mahdolli- sesti käytössä olevat kieliversiot ja eri valuutat. Hinta ja tuotetiedot tulee olla eriteltyinä tuotteen tiedoissa maa- ja valuuttakohtaisesti. Tuotteen hintatiedois- sa tulee olla eriteltynä myös hintojen arvonlisävero. Tuoterajapinnan tulee tukea myös mahdollisuutta filtteröidä tuotelistaus määrättyjen kategorioiden mukaan tai tiettyjen tuoteattribuuttien, kuten koon tai värin mukaan. Tuotelistaus tulee olla mahdollista myös järjestää eri kriteereillä, kuten tuotteen nimen tai hinnan mukaan laskevaan ja nousevaan järjestykseen.

Tuotteen samanaikainen myynti useassa kosketuspinnassa tulee ottaa huomioon rajapinnan suunnittelussa siten, että tuotteen saatavuustiedot voidaan varmistaa

40

keskitetystä verkkokauppa-alustasta ennen tuotteen ostamista. Tuotteen ostami- nen tulee estää, jos tuotteen saatavuuskyselyn yhteydessä havaitaan, ettei tuote ole enää saatavilla. Rajapinnan tulee tukea yhden tai useamman tuotteen saata- vuuskyselyä yhdellä rajapintakutsulla. Rajapinnan vastauksena saadaan listaus, jossa jokaista tuotteen yksilöivää tunnistetta kohden on tieto tuotteen sen hetki- sestä varastosaldosta.

4.2.2 Tuotehaku-rajapinta

Rajapinnan tulee tukea mahdollisuutta hakea tuotteita rajapinnasta määrätyllä hakusanalla, jotta asiakassovellukseen voidaan toteuttaa tuotehaku. Tuotehaun osalta voidaan käyttää hyödyksi tuoterajapintaa siten, että tuotelistaus filtteröi- dään hakusanan mukaan.

4.2.3 Tuotekategoriarajapinta

Tuotekategoriarajapinnasta tulee voida hakea listaus niistä tuotekategorioista, joissa on myynnissä olevia tuotteita. Lisäksi rajapinnan tulee tukea yksittäisen kategorian tietojen hakemista. Tuotekategorian tiedoissa tulee olla tieto katego- rian yksilöivästä tunnisteesta, nimestä ja kuvauksesta. Lisäksi kategorian tiedois- sa tulee olla tieto kategorian yläkategoriasta, kategorian järjestysnumerosta, sekä tieto kategorian tasosta kategoriapuussa, jotta kategoria voidaan esittää oikeas- sa hierarkkisessa esitysmuodossa asiakassovelluksessa. Tuotekategoriarajapinnan suunnittelussa tulee ottaa huomioon verkkokaupan mahdolliset kieliversiot, ja tästä syystä tuotekategoriatiedot tulee olla eriteltyinä kieliversioittain.

4.2.4 Tuotemerkkirajapinta

Tuotemerkkirajapinnasta voidaan hakea listaus kaupan tuotemerkeistä. Lisäksi rajapinnan tulee tukea yksittäisen tuotemerkin tietojen hakemista, kuten tuo- temerkin nimi, kuvaus ja tuotemerkin kuva, joka voidaan käsitellä asiakassovel- luksessa halutun kokoiseen esitysmuotoon. Tuotemerkkilistaus tulee voida järjes- tää tuotemerkin nimen mukaan tai keskitettyyn verkkokauppa-alustaan määrätyn järjestyksen mukaisesti. Tuotemerkkirajapinnan suunnittelussa tulee ottaa huo- mioon verkkokaupan mahdolliset kieliversiot, ja tästä syystä tuotemerkkien tiedot tulee olla eriteltyinä kieliversioittain.

4.2.5 Asiakasrajapinta

Asiakasrajapinnan tulee tukea käyttäjän luomista (rekisteröintiä) ja käyttäjä- tietojen muokkaamista. Lisäksi rajapinnassa tulee olla mahdollisuus käyttäjätilin poistamiseen. Rajapinnan tulee tukea myös käyttäjän salasanan vaihtamista. Ra- japinnassa tulee olla myös metodi uuden salasanan tilaamiseen käyttäjän yksilöi- vän sähköpostiosoitteen perusteella. Linkki uuden salasanan vaihtamiseen lähete- tään käyttäjän antamaan sähköpostiosoitteeseen. Salasanan vaihtaminen tapah- tuu verkkokaupassa tai mobiilioptimoidussa verkkokaupassa. Rajapinnassa pitää olla tarkastus, ettei uutta salasanaa voi tilata samalle käyttäjälle useammin, kuin kerran tunnissa, jotta voidaan välttyä rajapinnan väärinkäytöksiltä.

4.2.6 Ostoskorirajapinta

Ostoskorirajapintaan tulee olla mahdollista lähettää tiedot tilattavista tuotteista, niiden kappalemääristä sekä ostossa mahdollisesti käytetyistä kampanjakoodeista tai lahjakorteista. Keskitetty verkkokauppa-alusta pitää huolen ostoskorin tuot- teiden yhteissumman ja toimituskulujen laskemisesta ostoskorirajapintaan ilmoi- tettujen tuotteiden ja niihin vaikuttavien kampanjakoodien tai lahjakorttikoodien perusteella. Ostoskorirajapinnan tulee tukea ostoskorin lisättyjen tuotteiden kap- palemäärien muuttamista, sekä tuotteiden lisäämistä ostoskoriin ja poistamista ostoskorista. Lisäksi koko ostoskori tulee voida poistaa, jos ostoskorista poistetaan asiakassovelluksessa kaikki tuotteet.

4.2.7 Tilausrajapinta

Tilausrajapintaan tulee voida lähettää tilauksen vaiheittaiset tiedot, jotka voi- vat jakautua esimerkiksi seuraavasti: asiakastiedot ja toimitusosoite, maksuta- van valinta, maksaminen ja yhteenveto. Tilaus koostuu käyttäjän syöttämistä asiakas- sekä toimitustiedoista sekä tilattavista tuotteista ja toimituskuluista, ja niihin vaikuttavista kampanjakoodeista tai lahjakorteista, joiden tiedot saadaan käyttäjän ostoskorista. Käyttäjän ostoprosessissa syöttämä sähköpostiosoite toi- mii käyttäjän yksilöivänä tietona keskitetyssä verkkokauppa-alustassa. Jos asiak- kaan syöttämällä sähköpostilla ei ole aiemmin luotu käyttäjää verkkokauppaan, niin käyttäjä luodaan verkkokauppa-alustaan ostoprosessissa syötettyjen asiakas- tietojen perusteella. Rajapintaan tulee pystyä välittämään myös tieto siitä onko käyttäjä kirjautuneena asiakassovellukseen ostohetkellä. Kirjautuneelle käyttäjäl- le voidaan päivittää keskitettyyn verkkokauppa-alustaan käyttäjän ostoprosessis-

42

sa syöttämät asiakastiedot käyttäjän yksilöivän sähköpostiosoitteen perusteella.

Tilausrajapinnan tulee tukea tilauksen sisältämien tilattavien tuotteiden tilaus- määrien muuttamista, sekä tilattavien tuotteiden lisäämistä ja poistamista. Lisäk- si koko tilaus tulee voida poistaa, jos ostoskorista poistetaan asiakassovelluksessa kaikki tilattavat tuotteet.

Toimitustaparajapinta

Toimitustaparajapinnasta tulee olla saatavilla tiedot verkkokaupassa käytössä olevien toimitustapojen yksilöivistä tunnisteista ja nimistä, postitoimittajan tun- nisteista ja nimistä sekä toimitustavan hintatiedoista, jotta asiakassovelluksessa voidaan esittää tuetut toimitustavat.

Maksutaparajapinta

Maksutaparajapinnasta tulee olla saatavilla tiedot verkkokaupassa käytössä ole- vien maksutapojen yksilöivistä tunnisteista, nimistä sekä maksutavan kuvakkees- ta, jotta asiakassovelluksessa voidaan esittää tuetut maksutavat.

Tilauksen vahvistaminen maksetuksi

Ostoskorirajapintaan tulee olla mahdollista lähettää maksukuittaus tilauksesta sen jälkeen, kun asiakas on maksanut tilauksen. Maksukuittauksen yhteydessä tilaus merkitään maksetuksi.

Asiakkaan tilausten hakeminen

Tilausrajapinnan tulee tukea mahdollisuutta hakea tiedot käyttäjän omista ti- lauksista sekä tilauksen sisältämistä ostetuista tuotteista, jotta käyttäjä voi tar- kastella asiakassovelluksen kautta tilaushistoriaansa.

4.2.8 Rajapinnan autentikointi

Tilausrajapinnan sekä ostoskorirajapinnan resurssit vaativat autentikaation kes- kitettyyn verkkokauppa-alustaan rajapintakutsun yhteydessä. Käyttäjärajapin- nan suojattujen toimintojen käyttö edellyttää autentikoinnin keskitettyyn verk- kokauppa-alustaan käyttäjän kirjautumistunnuksilla. API:n suojatut osa-alueet ovat:

• Käyttäjärajapinta muokkaamisen, tietojen hakemisen ja tilin poistamisen osalta.

• Tilausrajapinta ja ostoskorirajapinta kokonaisuudessaan.

Rajapinnan suojattujen osa-alueiden kutsuminen täytyy tapahtua aina suojatun HTTPS-yhteyden yli.

4.2.9 Virheiden käsittely ja samanaikaisuuden hallinta

Rajapinnan tulee vastata virheellisiin rajapintakutsuihin loogisella HTTP-status- koodilla ja tämän lisäksi HTTP-vastauksen rungon tulee sisältää XML-muodossa tiedot virheiden yksilöivistä tunnisteista sekä selkokielinen kuvaus jokaisesta ta- pahtuneesta virheestä. Virheet tulee olla eroteltuna HTTP-vastauksen rungossa, jotta asiakassovelluksessa voidaan tunnistaa virhe ja näyttää käyttäjälle asian- mukainen virheviesti. Järjestelmän toteutuksessa tulee myös varmistaa samanai- kaisuuden hallinnalla (engl. concurrency control), ettei transaktioiden samanai- kainen suorittaminen vaaranna tiedon eheyttä tietokannassa. Samanaikaisuuden hallinta voidaan toteuttaa lukituksilla sekä versioinnilla, joilla varmistetaan, et- tä tietyn tietueen samanaikaiset tallennukset saadaan kaikki suoritettua. Ilman samanaikaisuuden hallintaa samanaikaisista transaktioista vain yksi saattaisi on- nistua aiheuttaen muiden transaktioiden hylkäämisen. Samanaikainen tiedon kä- sittely voi tulla eteen rajapinnassa esimerkiksi tapauksessa, jossa samaa tuotetta tilataan samanaikaisesti kahden eri käyttäjän toimesta, ja tuotteelta vähennet- täisiin varastosaldoa kahden transaktion toimesta samanaikaisesti.

4.2.10 Rajapinnan vastausten välimuistittaminen

Eri kosketuspintojen ja myyntikanavien käytön kasvaessa rajapintaan saapuvien kutsujen määrä kasvaa, ja sen myötä palvelimen ja tietokannan kuormitus kasvaa.

Rajapinnan palauttamat vastaukset tulee tästä syystä välimuistittaa niiltä osin, joilta rajapinnan vastausten ajantasaisuus ei ole liiketoiminnan kannalta kriittis- tä. Näin ollen esimerkiksi tuotteen saatavuustietojen tulee palauttaa aina ajan- tasainen vastaus, eikä rajapinnan paluuarvoa voida tästä syystä välimuistittaa.

Sen sijaan tuotteen tiedot voidaan välimuistittaa hakuindeksiin esimerkiksi mi- nuutin ajaksi, jonka myötä rajapinnan ei tarvitse kuormittaa tietokantaa jokaisen kutsun yhteydessä.

5 Monikanavaisen verkkokaupan korkean ta- son arkkitehtuuri

Tässä luvussa suunnittelen monikanavaisen verkkokaupan korkean tason arkki- tehtuurin tilaus- ja välimiesohjelmiston sekä ohjelmointirajapinnan osalta. Esitte- len ensin tehdasmetodi-suunnittelumallin, johon pohjautuen suunnittelen tilaus- ja välimiesohjelmiston korkean tason arkkitehtuurisuunnitelman. Lisäksi esittelen Atom Publishing -protokollan, johon perustuen suunnittelen RESTful-ohjelmoin- tirajapinnan, ja esitän sen resurssit, resurssien URI:t ja HTTP-metodit, joilla re- sursseja voidaan julkaista ja hallita.

No documento Monikanavainen e-kaupankäynti (páginas 43-49)

Documentos relacionados