Harjoitus 2: fanikauppa
Yleistä
Tehtävänä on laatia kuvitteellisen verkkokaupan prototyyppi. Verkkokauppa voi olla esimerkiksi bändin tai urheiluseuran fanituotteita myyvä verkkokauppa (mukit, lippalakit, T-paidat, julisteet yms.). Voit valita aiheen vapaasti mutta huomioi sisällössä se, että harjoitus julkaistaan osaksi portfoliotasi.
Toiminnot
- Tuotteiden selailu
Asiakas voi selata tuotteita verkkokaupassasi. Tuotteita tulee olla vähintään kolme kappaletta. Tuotteiden tietoja ovat tuotekuva, tuotteen nimi, lyhyt kuvaus sekä hinta. Muista lisätä tuotteelle myös id-kenttä.
- Lisääminen ostoskoriin
Kun tuote lisätään ostoskoriin asiakkaalta tulee pyytää kappalemäärä. Ostoskorin tiedot päivittyvät ja asiakas näkee ostoskorinsa sisällön muuttuneen.
- Ostoskorin muuttaminen
Voit näyttää ostoskorin koko ajan sivulla tai avata sen esimerkiksi nappia painettaessa. Ostoskorissa näytetään teksti "Ostoskorisi on tyhjä" tai käyttäjän lisäämät tuotteet. On tärkeää näyttää käyttäjälle koko ostoskorin kokonaishinta. Ostoskorissa voi muuttaa kappalemäärää tai poistaa kokonaan tietyn tuotteen. Ostoskorissa tulee olla myös painike kaikkien tuotteiden poistamiseksi (Tyhjennä ostoskori).
- Yhteystiedot
Ostoskorissa tulee olla painike Tilaa. Painettaessa nappia asiakkaalta pyydetään hänen yhteystietonsa (nimi, sähköpostiosoite, puhelinnumero, lähiosoite, postinumero sekä postitoimipaikka). Tilaus vahvistetaan painamalla painiketta Lähetä tilaus jolloin asiakasta kiitetään tilauksesta ja ostoskorin tiedot tyhjennetään.
Edistyneet toiminnot
- Alennus
Lisää toiminto alennuksen laskemiseksi tiettyjen ehtojen mukaan
- Kokonaissumma yli 100€, alennus 2.5%
- Kokonaissumma yli 250€, alennus 4%
- Kokonaissumma yli 500€, alennus 6%
Julkaiseminen portfolioon
Lisätään fanikauppa osaksi portfoliotasi. Tehdään portfolio-repossa alikansio fanikauppa jonka alle kopioidaan build-versio. Jotta sivu osaa ladata js ja css-tiedostot oikein tulee vite.config.js-tiedostoon lisätä rivi kertomaan oikean polun:
base: '/fanikauppa/',
Tee seuraavaksi build suorittamalla komento:
npm run build
Build luodaan kansioon dist. Kopioi dist-kansion sisältö portfolio-reposi fanikauppa-kansioon.
Portfoliossa linkitä fanikaupan index.html-sivu:
<h1>Portfolio</h1> <h2>Fanikauppa</h2> <p>Reactilla tehty kuvitteellinen verkkokauppa.</a> <a href="./fanikauppa/index.html">Fanikauppa</a>
Huom. jos käytät react-router:ia niin lisää basename-attribuutiksi oikea kansio:
<BrowserRouter basename='/fanikauppa'>