Moduuli 1 · 1.2
Näin WooCommerce toimii
Moduuli 1: Ennen kuin aloitat · Lukuaika: 10 minuuttia
Oppimistavoite: Tämän oppitunnin jälkeen osaat selittää, miten WooCommerce toimii WordPressissä ja missä tuotteet, tilaukset, ostoskori ja ajastetut tehtävät sijaitsevat.
Keskeiset käsitteet: tuotetyyppi, sisältötyyppi product, tilaukset (HPOS), kaupan sivut, istunto ja ostoskori, Store API, REST API, Action Scheduler, tapahtumasähköpostit, laajennukset
Lisäosa, joka tekee sivustostasi kaupan
WordPress-kurssilla (oppitunnit 1.2 ja 1.3) näit, miten sivu syntyy: verkkopalvelin antaa pyynnön PHP:lle, PHP lataa WordPressin, lisäosat ja teeman, hakee tiedot tietokannasta ja tekee niistä HTML:ää. WooCommerce liittyy tähän prosessiin suurena lisäosana. Se tuo mukanaan neljä asiaa:
- Tiedot: tuotteet, tilaukset, asiakkaat, verokannat, toimitusalueet.
- Sivut: kauppa, ostoskori, kassa ja Oma tili.
- Prosessit: oma ostoskori jokaiselle kävijälle, maksut maksupalvelun kautta, sähköpostit, varastosaldon päivitys, ajastetut tehtävät.
- Rajapinnat ohjelmille: Store API ja REST API.
Kun tiedät, missä nämä osat ovat, löydät virheen myöhemmin paljon nopeammin. Siksi käymme ne nyt läpi yksi kerrallaan.
Tuotteet: oma sisältötyyppi
WordPressissä on sisältötyyppejä: sivut ja artikkelit ovat kaksi niistä (WordPress-kurssin oppitunti 4.2). WooCommerce lisää sisältötyypin product. Tuote on siis sivun tavoin artikkelien taulussa, ja sen lisätiedot (hinta, SKU, varastosaldo, paino) ovat metatietoina. Tuotteiden kategoriat ja avainsanat ovat omia taksonomioitaan, erillään blogisi vastaavista.
Jokaisella tuotteella on tuotetyyppi. Perusversiossa ne ovat yksinkertainen, ryhmitelty, ulkoinen (linkki toiseen kauppaan) ja muunnelmallinen. Lisäksi voit valita valintaruudut virtuaalinen (ei mitään lähetettävää) ja ladattava (tiedosto maksun jälkeen). Muunnelmallisella tuotteella on muunnelmia, esimerkiksi teekannu kolmessa värissä; jokainen muunnelma on oma nimikkeensä omalla hinnalla ja varastosaldolla. Moduuli 3 käsittelee tätä tarkemmin.
Tilaukset: omat taulut (HPOS)
Aiemmin WooCommerce tallensi myös tilaukset artikkeleina. Vilkkaissa kaupoissa se hidasti toimintaa, koska tilaukset ja blogiartikkelit jakoivat saman suuren taulun. Siksi tuli HPOS (High-Performance Order Storage): tilaukset omissa tauluissaan, kuten wc_orders, wc_order_addresses ja wc_orders_meta (sivustosi taulujen etuliite edessä). WooCommerce 8.2:sta (lokakuu 2023) lähtien HPOS on päällä jokaisessa uudessa asennuksessa. Vanhempi kauppa pysyy vanhassa tallennustavassa, kunnes vaihdat itse kohdassa WooCommerce > Asetukset > Edistyneet > Ominaisuudet.
Miksi sinun pitää tietää tämä? Kolmesta syystä:
- Varmuuskopiot: tilaukset eivät ole tiedostoissasi vaan tietokannassa. Varmuuskopio ilman tietokantaa on verkkokaupalle arvoton (oppitunti 6.2).
- Laajennukset: vanhempi laajennus, joka lukee tilaukset vielä artikkeleina, ei toimi kunnolla HPOS:n kanssa. WooCommerce varoittaa lisäosan kohdalla, jos se ei ole yhteensopiva.
- Palauttaminen: jos palautat eilisen varmuuskopion, tämän päivän tilaukset katoavat. Verkkokaupalle se on paljon pahempaa kuin blogille (oppitunti 6.2).
Ostoskori: erilainen jokaiselle kävijälle
Tavallinen sivu on sama jokaiselle kävijälle. Ostoskori ei ole. Heti kun kävijä lisää jotain ostoskoriin, WooCommerce aloittaa istunnon: selaimeen tulee eväste (wp_woocommerce_session_ ja sen perässä koodi) ja tietokannan istuntotauluun rivi. Näin kauppa tietää seuraavassa pyynnössä, mikä ostoskori kuuluu tälle kävijälle.
Kaksi seurausta, jotka näet myöhemmin uudelleen:
- Ostoskori, kassa ja Oma tili eivät saa koskaan päätyä sivuvälimuistiin, muuten yksi kävijä näkee toisen ostoskorin. WooCommerce lähettää näillä sivuilla itse otsakkeita, jotka kieltävät välimuistin (oppitunti 6.4).
- Kauppa, joka aloittaa istunnon jokaiselle kävijälle, myös ilman ostoskoria, tekee koko sivuston sivuvälimuistista hyödyttömän. Tämä on teemojen ja laajennusten yleinen virhe.
Kaupan sivut ja lohkot
Asennuksen yhteydessä WooCommerce luo neljä sivua: Kauppa, Ostoskori, Kassa ja Oma tili. Versiosta 8.3 (marraskuu 2023) lähtien uudet asennukset käyttävät ostoskorissa ja kassalla lohkoja; vanhemmat kaupat käyttävät usein vielä lyhytkoodeja. Molemmat toimivat. Ero on tärkeä laajennuksille: laajennuksen, joka lisää jotain kassalle, täytyy tukea käyttämääsi vaihtoehtoa. Oppitunti 2.2 näyttää, miten tarkistat sen.
Kaksi rajapintaa ohjelmille: Store API ja REST API
WooCommercessa on kaksi ohjelmoitavaa rajapintaa, ja niiden ero on tärkeä tietoturvan kannalta:
| Store API | REST API | |
|---|---|---|
| Osoite | /wp-json/wc/store/v1/... | /wp-json/wc/v3/... |
| Kenelle | Kaupalle itselleen (selaimen lohkot) ja muille kauppanäkymille | Integraatioille: kirjanpito, varasto, sovellukset |
| Tarvitaanko avain? | Ei, julkinen: kuka tahansa voi lukea tuotteet ja hinnat | Kyllä, API-avain luku- tai kirjoitusoikeuksin |
| Mitä se sisältää | Tuotteet, hinnat, varastotilanteen, nykyisen kävijän ostoskorin | Myös tilaukset, asiakkaat, raportit |
Se, että Store API on julkinen, ei ole tietovuoto: se on täsmälleen sitä, mitä jokainen kävijä näkee kaupassa, vain ohjelmien luettavassa muodossa. Kokeile omalla kaupallasi: avaa selaimessa https://shop.example.com/wp-json/wc/store/v1/products (omalla osoitteellasi), niin näet tuotteesi JSON-muodossa. REST API sen sijaan pitää olla suljettu ilman avainta. Oppitunti 2.4 tarkistaa molemmat.
Kulissien takana: Action Scheduler ja sähköpostit
Suuri osa verkkokaupan työstä ei tapahdu asiakkaan odottaessa vaan myöhemmin. WooCommerce käyttää siihen Action Scheduleria: ajastettujen tehtävien jonoa, esimerkiksi maksamattoman tilauksen peruuttaminen asetetun ajan jälkeen, webhookien lähettäminen tai raporttien päivittäminen. Näet jonon kohdassa WooCommerce > Tila > Ajastetut toiminnot. Nämä tehtävät ajetaan WP-Cronilla, joka toimii vain, kun sivustolla on kävijöitä. Hiljaisessa kaupassa työtä voi siksi jäädä tekemättä; oppitunti 7.3 näyttää, miten oikea cron ratkaisee tämän.
Lisäksi WooCommerce lähettää tapahtumasähköposteja: viestin sinulle uudesta tilauksesta sekä viestejä asiakkaalle tilauksen vastaanotosta, lähetyksestä, hyvityksestä tai uudesta tilistä. Jos ne eivät tule perille, asiakas luulee, että jokin on vialla. Oppitunti 6.1 hoitaa sähköpostien toimittamisen kuntoon.
Käytännössä: tältä se näyttää WooCommercessa
Teetupa Examplen WordPress-hallinnassa näkyy asennuksen jälkeen kolme uutta valikkoa: WooCommerce (tilaukset, asiakkaat, asetukset, tila), Tuotteet ja Analytiikka (uusissa versioissa joskus WooCommercen alla). Kohdasta WooCommerce > Tila löydät palvelinympäristön, tietokantataulut, ajastetut toiminnot ja lokit. Tarvitset tätä näkymää pian usein. Vaiheet ovat samat jokaisella palveluntarjoajalla, koska ne ovat WordPressissä itsessään.
Yhteenveto
- WooCommerce tuo mukanaan tiedot, sivut, prosessit ja kaksi ohjelmoitavaa rajapintaa.
- Tuotteet ovat oma sisältötyyppinsä; uusissa kaupoissa tilaukset ovat omissa tauluissaan (HPOS, oletuksena versiosta 8.2 lähtien).
- Ostoskori toimii kävijäkohtaisella istunnolla; siksi ostoskori, kassa ja Oma tili eivät saa olla välimuistissa.
- Store API on julkinen ja näyttää sen, minkä jokainen kävijä näkee; REST API pitää olla suljettu ilman avainta.
- Ajastetut tehtävät kulkevat Action Schedulerin ja WP-Cronin kautta; sähköpostit ovat osa tilausprosessia.
Tietovisa (quiz)
Tehtävä
Tehtävä A1.2: Toimiiko tämä sivusto WooCommercella? Syötä verkkotunnus, valitse kyllä tai ei ja kirjoita, minkä todisteen näit (esimerkiksi "generator" tai "wc/store/v1"). Ohjelma hakee etusivun, lukee REST-indeksin (/wp-json/, vain nimiavaruuksien luettelon) ja pyytää osoitteen /wp-json/wc/store/v1/products?per_page=1. Se tunnistaa WooCommercen meta generator -tagista, jossa on WooCommerce, nimiavaruudesta wc/store/v1 REST-indeksissä, toimivasta Store API:sta, kansion /wp-content/plugins/woocommerce/ tiedostoista tai body-luokasta woocommerce. Vihreä: valintasi on oikein ja todisteesi löytyy otsakkeista, HTML:stä, REST-indeksistä tai Store API:n vastauksesta; näet silloin myös tuotteiden määrän ja valuutan. Oranssi: valintasi on oikein, mutta todistettasi ei löydy. Punainen: valintasi ei ole oikein. Kokeile ensin omalla kaupallasi ja sitten jollakin tuntemallasi kaupalla. Mitään ei lisätä ostoskoriin eikä mitään lähetetä.
Lue lisää
Kun ohjeissa on vaiheita hallintapaneelissa, ne koskevat WebOkéta; muilla palveluntarjoajilla toiminta on samankaltaista.
- Ilmainen WordPress-kurssi 1.2: Konepellin alla: webbipalvelin, PHP ja tietokanta
- Ilmainen WordPress-kurssi 1.3: Tiedostot, wp-config ja tietokanta
- Ilmainen WordPress-kurssi 4.2: Sivut, artikkelit, kategoriat ja tagit
- High-Performance Order Storage (developer.woocommerce.com, englanniksi): https://developer.woocommerce.com/docs/features/orders/high-performance-order-storage/
- Store API (developer.woocommerce.com, englanniksi): https://developer.woocommerce.com/docs/apis/store-api/
- Action Scheduler (englanniksi): https://actionscheduler.org/
