Mine sisu juurde

Küpsiste seaded

Vali iga liigi kohta, milliseid küpsiseid lubad. Oma valikut saad alati muuta iga lehe allosas oleva lingi „Küpsiste seaded“ kaudu. Privaatsuspoliitika

Vajalikud

Alati sees

Vajalikud sisselogimiseks, ostukorvi säilitamiseks ja sinu valikute meelespidamiseks. Need on alati sees.

Millised küpsised?
  • weboke_sessie, weboke_klant, weboke_remember: sinu seanss ja sisselogituks jäämine
  • weboke_basket: sinu ostukorv
  • wkBtwIncl: hindade näitamine koos käibemaksuga või ilma
  • wok_cookies: sinu küpsisevalik, 12 kuud

Mõõdab, milline reklaam viib külastuse või tellimuseni, et me ei maksaks reklaamide eest, mis midagi ei anna.

Millised küpsised?
  • Google Ads Google Tag Manageri kaudu (_gcl_au, _gcl_aw), kuni 90 päeva
  • OpenAI Ads, reklaamid ChatGPT-s
  • wok_aff: millise partneri kaudu meie juurde jõudsid (partnerprogramm), 60 päeva

4,6

Riik ja keel

Igal riigil on oma sait, selle riigi hindade ja käibemaksuga.

Vaata

Kuidas WooCommerce töötab

Moodul 1: Enne alustamist · Lugemisaeg: 10 minutit

Õpieesmärk: Pärast seda õppetundi oskad selgitada, kuidas WooCommerce WordPressis töötab ning kus asuvad tooted, tellimused, ostukorv ja ajastatud ülesanded.

Põhimõisted: tootetüüp, postitustüüp product, tellimused (HPOS), poe lehed, seanss ja ostukorv, Store API, REST API, Action Scheduler, tehingukirjad, laiendused

Plugin, mis teeb sinu saidist poe

WordPressi kursusel (õppetund 1.2 ja 1.3) nägid, kuidas leht tekib: veebiserver annab päringu PHP-le, PHP laadib WordPressi, pluginad ja teema, võtab andmebaasist andmed ja teeb neist HTML-i. WooCommerce lülitub sellesse protsessi suure pluginana. See toob kaasa neli asja:

  1. Andmed: tooted, tellimused, kliendid, maksumäärad, tarnetsoonid.
  2. Lehed: pood, ostukorv, kassa ja Minu konto.
  3. Protsessid: igale külastajale oma ostukorv, maksed makseteenuse pakkuja kaudu, kirjad, laoseisu uuendamine, ajastatud ülesanded.
  4. Sisendid programmidele: Store API ja REST API.

Kui tead, kus need osad asuvad, leiad hiljem vea palju kiiremini. Seepärast vaatame neid nüüd ükshaaval.

Tooted: oma postitustüüp

WordPressis on postitustüübid: lehed ja postitused on neist kaks (WordPressi kursuse õppetund 4.2). WooCommerce lisab postitustüübi product. Toode asub seega nagu leht postituste tabelis ning selle lisaandmed (hind, SKU, laoseis, kaal) on salvestatud metaandmetena. Toodete kategooriad ja sildid on omaette taksonoomiad, sinu blogi omadest eraldi.

Igal tootel on tootetüüp. Põhivariandis on need lihtne, grupeeritud, väline (link teise poodi) ja muutuv. Lisaks saad sisse lülitada linnukesed virtuaalne (midagi ei saadeta) ja allalaaditav (fail pärast makset). Muutuval tootel on variatsioonid, näiteks teekann kolmes värvis; iga variatsioon on eraldi üksus oma hinna ja laoseisuga. Moodul 3 käsitleb seda põhjalikumalt.

Tellimused: omaette tabelid (HPOS)

Varem hoidis WooCommerce ka tellimusi postitustena. Suure liiklusega poodides muutus see aeglaseks, sest tellimused ja blogipostitused jagasid sama suurt tabelit. Seepärast tuli HPOS (High-Performance Order Storage): tellimused omaette tabelites, nagu wc_orders, wc_order_addresses ja wc_orders_meta (nende ees on sinu saidi tabelieesliide). Alates WooCommerce 8.2-st (oktoober 2023) on HPOS igas uues paigalduses sees. Vanem pood jääb vana salvestusviisi juurde, kuni lülitad ise ümber menüüs WooCommerce > Sätted > Täpsemad seaded > Funktsioonid.

Miks pead seda teadma? Kolmel põhjusel:

  • Varukoopiad: tellimused ei ole sinu failides, vaid andmebaasis. Ilma andmebaasita varukoopia on e-poe jaoks väärtusetu (õppetund 6.2).
  • Laiendused: vanem laiendus, mis loeb tellimusi veel postitustena, ei tööta HPOS-iga korralikult. WooCommerce hoiatab plugina juures, kui see ei ühildu.
  • Taastamine: kui taastad eilse varukoopia, kaovad tänased tellimused. E-poe puhul on see palju hullem kui blogi puhul (õppetund 6.2).

Ostukorv: iga külastaja jaoks erinev

Tavaline leht on iga külastaja jaoks sama. Ostukorv mitte. Niipea kui külastaja paneb midagi ostukorvi, alustab WooCommerce seanssi: brauserisse tuleb küpsis (wp_woocommerce_session_ ja selle järel kood) ning andmebaasi seansitabelisse rida. Nii teab pood järgmise päringu ajal, milline ostukorv sellele külastajale kuulub.

Kaks tagajärge, mida näed hiljem uuesti:

  • Ostukorv, kassa ja Minu konto ei tohi kunagi sattuda lehe vahemällu, muidu näeb üks külastaja teise ostukorvi. WooCommerce saadab neil lehtedel ise kaasa päised, mis vahemällu salvestamise keelavad (õppetund 6.4).
  • Pood, mis alustab seanssi iga külastaja jaoks, ka ilma ostukorvita, muudab kogu saidi lehevahemälu kasutuks. See on teemade ja laienduste sage viga.

Poe lehed ja plokid

Paigaldamisel loob WooCommerce neli lehte: Pood, Ostukorv, Kassa ja Minu konto. Alates versioonist 8.3 (november 2023) kasutavad uued paigaldused ostukorvi ja kassa jaoks plokke; vanemad poed kasutavad sageli veel lühikoode. Mõlemad töötavad. Erinevus on laienduste jaoks oluline: laiendus, mis lisab kassasse midagi, peab toetama varianti, mida sina kasutad. Õppetund 2.2 näitab, kuidas seda kontrollida.

Kaks sisendit programmidele: Store API ja REST API

WooCommerce’il on kaks programmeeritavat sisendit ja nende erinevus on turvalisuse seisukohalt oluline:

Store APIREST API
Aadress/wp-json/wc/store/v1/.../wp-json/wc/v3/...
KellelePoele endale (plokid brauseris) ja teistele poe esiosadeleLiidestele: raamatupidamine, laohaldus, rakendused
Kas võtit on vaja?Ei, avalik: igaüks saab tooteid ja hindu lugedaJah, API võti lugemis- või kirjutamisõigusega
Mis seal onTooted, hinnad, laoseis, praeguse külastaja ostukorvKa tellimused, kliendid, aruanded

See, et Store API on avalik, ei ole leke: see on täpselt see, mida iga külastaja poes näeb, lihtsalt kujul, mida programmid suudavad lugeda. Proovi oma poega: ava brauseris https://shop.example.com/wp-json/wc/store/v1/products (oma aadressiga) ja näed oma tooteid JSON-ina. REST API peab seevastu ilma võtmeta suletud olema. Õppetund 2.4 kontrollib mõlemat.

Kulisside taga: Action Scheduler ja kirjad

Suur osa e-poe tööst ei toimu siis, kui klient ootab, vaid hiljem. WooCommerce kasutab selleks Action Schedulerit: ajastatud ülesannete järjekorda, näiteks maksmata tellimuse tühistamine pärast määratud aega, veebikonksude (webhook) saatmine või aruannete uuendamine. Järjekorda näed menüüs WooCommerce > Olek > Planeeritud tegevused. Need ülesanded töötavad WP-Croni peal, mis käivitub ainult siis, kui on külastajaid. Vaikse poe puhul võib töö seetõttu seisma jääda; õppetund 7.3 näitab, kuidas päris cron selle lahendab.

Lisaks saadab WooCommerce tehingukirju: sulle kiri uue tellimuse korral ning kliendile kirjad tellimuse kättesaamisel, saatmisel, raha tagastamisel või uue konto loomisel. Kui need kohale ei jõua, arvab klient, et midagi on valesti. Õppetund 6.1 seab kirjade kohalejõudmise korda.

Praktikas: nii näeb see WooCommerce’is välja

Theehuis Example’i WordPressi halduses ilmub pärast paigaldamist kolm uut menüüd: WooCommerce (tellimused, kliendid, sätted, olek), Tooted ja Analüütika (uuemates versioonides mõnikord WooCommerce’i all). Menüüs WooCommerce > Olek leiad serverikeskkonna, andmebaasi tabelid, planeeritud tegevused ja logid. Seda vaadet läheb sul edaspidi sageli vaja. Sammud on iga majutusteenuse pakkuja juures samad, sest need on WordPressis endas.

Kokkuvõte

  • WooCommerce toob kaasa andmed, lehed, protsessid ja kaks programmeeritavat sisendit.
  • Tooted on omaette postitustüüp; uutes poodides on tellimused omaette tabelites (HPOS, vaikimisi alates 8.2-st).
  • Ostukorv töötab iga külastaja oma seansiga; seepärast ei tohi ostukorv, kassa ja Minu konto vahemällu sattuda.
  • Store API on avalik ja näitab seda, mida iga külastaja näeb; REST API peab ilma võtmeta suletud olema.
  • Ajastatud ülesanded käivad Action Scheduleri ja WP-Croni kaudu; kirjad on osa tellimisprotsessist.

Test (quiz)

1. Kus asuvad HPOS-iga uue WooCommerce’i poe tellimused?



2. Miks alustab WooCommerce seanssi, kui külastaja paneb midagi ostukorvi?



3. Keegi avab sinu poe aadressi /wp-json/wc/store/v1/products sisse logimata ja näeb sinu tooteid koos hindadega. Mis see on?



4. Vaikses poes tühistatakse maksmata tellimus alles tunde hiljem, mitte pärast määratud aega. Mis on tõenäoline põhjus?



Ülesanne

Ülesanne A1.2: Kas see sait töötab WooCommerce’iga? Sisesta domeen, vali jah või ei ning kirjuta üles, millist tõendit nägid (näiteks "generator" või "wc/store/v1"). Programm laadib avalehe, loeb REST-indeksi (/wp-json/, ainult nimeruumide loend) ja küsib aadressi /wp-json/wc/store/v1/products?per_page=1. See tunneb WooCommerce’i ära meta generator-i järgi, milles on WooCommerce, nimeruumi wc/store/v1 järgi REST-indeksis, töötava Store API järgi, kaustast /wp-content/plugins/woocommerce/ pärit failide järgi või body-klassi woocommerce järgi. Roheline: sinu valik on õige ja sinu tõend esineb päistes, HTML-is, REST-indeksis või Store API vastuses; siis näed ka toodete arvu ja valuutat. Oranž: sinu valik on õige, kuid sinu tõendit me ei leia. Punane: sinu valik ei ole õige. Proovi kõigepealt oma poega ja seejärel mõne poega, mida tunned. Ostukorvi ei panda midagi ja midagi ei saadeta.

Ülesanne A1.2: Kas see sait töötab WooCommerce’iga?




Seda, mida sisestad, ja mida leiame, me ei salvesta. Su brauser jätab meelde su vastused ja selle, kas sooritasid ülesande. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et sul oli ülesanne (peaaegu) õige; ka selle saad sealt kustutada.

Lisalugemist

Kui sammud on haldusliideses, kehtivad need WebOké kohta; teiste pakkujate juures toimib see sarnaselt.

Hetk…

Seadista oma domeenid

Määra iga domeeni jaoks nimeserverid, seos sinu majutusega ja kes saab omanikuks.

Laadin sinu domeene…