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

Mida sinu e-pood avalikult näitab

Moodul 2: Paigaldamine ja seadistamine · Lugemisaeg: 10 minutit

Õpieesmärk: Pärast seda õppetundi oskad selgitada, mis on WooCommerce’i Store API ja REST API, millised andmed peavad olema avalikud ja millised mitte ning kuidas API võtmeid ja veebikonkse turvaliselt kasutada.

Põhimõisted: API, WordPressi REST API, Store API (wc/store/v1), WooCommerce’i REST API (wc/v3), JSON, avalik ja kaitstud, API võti, lugemis- ja kirjutamisõigus, vähimad õigused, veebikonks (webhook), veebikonksu salavõti, X-WP-Total

Kahe uksega pood

Külastaja näeb sinu poodi veebilehtedena. Aga poel on ka „uksed“ programmide jaoks: aadressid, kust programm saab andmeid küsida või kuhu neid saata, ilma lehe kujunduseta. Sellist ust nimetatakse API-ks (application programming interface). WordPressil on üks selline aadressil /wp-json/, see on REST API. WordPressi kursuse õppetund 7.3 näitas, et sealt saab näiteks kasutajanimesid küsida, kui sa midagi ei kaitse.

WooCommerce lisab kaks oma API-t, millel on väga erinev eesmärk:

Store APIWooCommerce’i REST API
Aadress/wp-json/wc/store/v1/.../wp-json/wc/v3/...
KelleleKülastaja brauserile (ostukorvi ja kassa plokid, õppetund 2.2)Teistele programmidele: raamatupidamine, laoseis, äpp, ühendus mõne müügiplatvormiga
Kas on vaja võtitEi, avalikJah, administraatori API võti (või sisse logitud õigustega kasutaja)
Mis seal onTooted, hinnad, laoseisu staatus, kategooriad, arvustused; külastaja enda ostukorv ja tellimusKõik: kõigi tellimused, kliendid, kupongid, sätted, aruanded

Store API on seega vaateakna sissepääs: mis su poes tootelehel on, on ka seal, lihtsalt andmetena. WooCommerce’i REST API on lao tagauks: see peab olema lukus.

Store API: mida külastaja (ja igaüks) saab küsida

Ava brauseris:

https://shop.example.com/wp-json/wc/store/v1/products

Saad loendi JSON-vormingus, mis on andmete tekstivorming. Iga toote kohta näed muu hulgas nime, slugi, tüüpi (lihtne, muutuv), tootelehe aadressi (permalink), SKU-d, hindu, pilte, kategooriaid, kas toode on laos ja kas see on müügil. Vastuse päistes on X-WP-Total: toodete arv, mida pood külastajatele näitab.

Mõned asjad, mida teada:

  • Hinnad on sentides. Teekann hinnaga € 34,95 on seal kujul "price": "3495" koos "currency_minor_unit": 2. Jaga 100-ga. Kas see on hind käibemaksuga või ilma, sõltub sättest „Hindade kuvamine poes“ (õppetund 4.1). Seda omadust kasutame õppetunni 4.1 ülesandes.
  • Ainult see, mis on nähtav. Mustandis, privaatseid või kataloogis peidetud tooteid Store API ei arvesta. Seepärast võib X-WP-Total olla väiksem kui toodete arv sinu halduses.
  • Lugeda võib igaüks, kirjutada niisama mitte. Ostukorvi lisamine või maksmine Store API kaudu on võimalik ainult lehelt saadud ühekordse koodiga (nonce) ja ainult selle külastaja enda ostukorvi jaoks.

Kas on halb, et see on avalik? Ei: need on samad andmed, mis on su tootelehtedel. Konkurent, kes tahab su hindu jälgida, saab seda teha ka tavaliste lehtede kaudu. Küll aga tasub teada: kõik, mis sa tooteväljale kirjutad, võib jõuda Store API-sse. Ära kunagi pane ostuhindu, tarnijate nimesid ega sisemärkmeid lühikirjeldusse või pikka kirjeldusse „sest teema seda välja niikuinii ei näita“.

Ära sulge ka Store API-t. Ostukorvi ja kassa plokid vajavad seda (õppetund 2.2). Turvapluginad, mis „lülitavad külastajatele REST API välja“, rikuvad seetõttu mõnikord maksmise. Kui tahad REST API-t piirata, jäta Store API erandiks.

Store API kuritarvitamist siiski esineb, aga kirjutamise poolel: ründajad, kes proovivad varastatud kaardinumbritega tuhandeid väikeseid tellimusi. Seda nimetatakse kaarditestimiseks (card testing); sellest räägib õppetund 6.3.

WooCommerce’i REST API: alati võtme taga

Ava nüüd ilma sisse logimata:

https://shop.example.com/wp-json/wc/v3/orders

Õige vastus on veateade olekuga 401 (pole sisse logitud) ja koodiga nagu woocommerce_rest_cannot_view. Su pood ütleb: „seda ei tohi sa näha“. Nii see peabki olema. Kui saad siin tellimuste loendi, on midagi tõsiselt valesti: plugin, mis avab õigused, kohandatud kood teemas või võti, mis on avalikus aadressis. Siis on sul võimalik andmeleke (WordPressi kursus, õppetund 7.5, ja teadmusbaas 6749).

Programmid, mis peavad su tellimustele ligi pääsema, saavad API võtme. Selle lood jaotises WooCommerce > Sätted > Täpsemad seaded > REST API (Advanced > REST API). Võti koosneb kahest osast (consumer key ja consumer secret) ning kuulub ühele WordPressi kasutajale. Valid õigused:

  • Lugemine: programm võib andmeid küsida;
  • Kirjutamine: programm võib andmeid luua ja muuta;
  • Lugemine/Kirjutamine: mõlemad.

Reeglid, mida alati järgid:

  1. Vähimad õigused. Raamatupidamisühendus, mis ainult laadib tellimusi, saab ainult lugemisõiguse. Laoühendus, mis uuendab laoseisu, vajab kirjutamisõigust, aga aruandlustööriist mitte.
  2. Üks võti ühenduse kohta, selge kirjeldusega („Raamatupidamine, ainult lugemine, 2026“). Kui ühendus lõpetatakse, tühistad ainult selle võtme.
  3. Seo võti sobivate õigustega kasutajaga. Administraatori võti saab teha kõike, mida administraator. Loo pigem eraldi kasutaja rolliga Poe haldur (õppetund 6.2).
  4. Hoia salajane pool turvaliselt. Näed seda ainult üks kord loomisel. See kuulub programmi sätetesse või paroolihaldurisse, mitte e-kirja, jagatud dokumenti ega avalikku koodihoidlasse.
  5. Korista. REST API all näed iga võtme juures, millal seda viimati kasutati. Võtme, mida pole kuude kaupa kasutatud, tühistad.

Veebikonksud: su pood helistab teisele programmile

API ootab, kuni keegi küsib. Veebikonks (webhook) töötab vastupidi: kui poes juhtub midagi (uus tellimus, muudetud toode), saadab WooCommerce ise sõnumi aadressile, mille sina määrad. Nii saab su saatmisprogramm kohe teada, et tellimus on tulnud, ilma et peaks iga minut küsima. Need seadistad jaotises WooCommerce > Sätted > Täpsemad seaded > Veebikonksud.

Kolm asja, millele tähelepanu pöörata:

  • Sõnum sisaldab isikuandmeid. Uue tellimuse veebikonks saadab kaasa nime, aadressi ja tellitud tooted. Saada seda ainult https-aadressile ja osapoolele, kes on kirjas su privaatsuspoliitikas ja töötlemistoimingute registris (õppetund 5.5).
  • Salavõti. Veebikonksu juures sisestad salavõtme. Selle abil saab vastuvõttev programm kontrollida, et sõnum tuleb tõesti sinu poest ja mitte kelleltki, kes aadressi ära arvas. Ära jäta seda tühjaks ja jaga seda ainult vastuvõtjaga.
  • Ebaõnnestunud kohaletoimetamine. Kui vastuvõttev aadress on pikemat aega kättesaamatu, võib WooCommerce veebikonksu pärast korduvaid vigu välja lülitada. Vaata pärast riket jaotisest Veebikonksud, kas need on veel aktiivsed.

Ära aja seda segi makseteenuse pakkuja veebikonksuga (õppetund 4.4). See töötab vastupidi: pakkuja teatab sinu poele, et makse õnnestus.

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

Teiste majutajate juures töötab see samamoodi; need on WooCommerce’i enda osad.

  1. Ava privaatses aknas oma (test)poes /wp-json/wc/store/v1/products. Otsi üles üks toode ja arvuta hind ümber.
  2. Ava samas privaatses aknas /wp-json/wc/v3/orders. Peaksid nägema olekut 401.
  3. Mine jaotisse WooCommerce > Sätted > Täpsemad seaded > REST API. Vaata, millised võtmed on olemas, millise kasutaja juures ja milliste õigustega. Tühista võtmed, mida sa ei tunne (või enam ei vaja).
  4. Vaata jaotises Veebikonksud, millised veebikonksud on olemas ja mis aadressile need lähevad.
  5. Kui sul on turvaplugin, mis piirab REST API-t, kontrolli, et Store API on erandiks jäetud.

Kokkuvõte

  • Store API (wc/store/v1) on avalik ja sisaldab seda, mis on ka su tootelehtedel; ostukorvi ja kassa plokid vajavad seda.
  • Ära pane tooteväljadele sisemisi andmeid: need võivad Store API kaudu nähtavaks saada.
  • WooCommerce’i REST API (wc/v3) peab ilma võtmeta andma vastuse 401; tellimuste loend ilma võtmeta on võimalik andmeleke.
  • API võtmed: vähimad õigused, üks ühenduse kohta, sobiva kasutaja juures, hoia salajasena, kasutamata võtmed tühista.
  • Veebikonksud saadavad isikuandmeid teisele programmile: ainult https kaudu, salavõtmega ja osapoolele, kes on su töötlemistoimingute registris.

Test (quiz)

1. Millised andmed peavad Store API kaudu olema avalikud?



2. Avad ilma sisse logimata /wp-json/wc/v3/orders ja saad tellimuste loendi. Mida see tähendab?



3. Raamatupidamisprogramm peab ainult tellimusi laadima. Millise API võtme lood?



4. Turvaplugin sulgeb külastajatele kogu REST API. Pärast seda ei saa kliendid enam maksta. Miks?



5. Miks sisestad veebikonksu juures salavõtme?



Ülesanne

Ülesanne A2.4: Mida sinu e-pood avalikult näitab? Sisesta oma (test)poe aadress ja poes nähtavate toodete arv. Programm teeb kolm päringut, ilma küpsiste ja võtmeta, ainult lugemiseks:

  1. /wp-json/wc/store/v1/products?per_page=1 (Store API, REST-aadressi kaudu, mille su sait ise teatab);
  2. /wp-json/wc/v3/orders?per_page=1;
  3. /wp-json/wc/v3/customers?per_page=1.

Ülesanne A2.4: Mida sinu e-pood avalikult näitab?



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.

Hea on: Store API vastab olekuga 200 ja JSON-loendiga; päis X-WP-Total võrdub sinu sisestatud arvuga; orders ja customers annavad 401, 403 või 404.

Oranž: X-WP-Total erineb (mustandis, privaatseid või peidetud tooteid ei arvestata); Store API annab 401 või 403, tavaliselt turvapluginа tõttu, mistõttu kassa plokid ei tööta.

Punane: Store API pole kättesaadav, kuigi su sait kasutab WooCommerce’i; või orders või customers tagastavad loendi. Viimane on tõsine: sulge see kohe, kontrolli oma API võtmeid ja pluginaid ning hinda, kas pead andmelekkest teatama. Programm salvestab sel juhul ainult olekukoodi, mitte kunagi sisu.

Vaata seejärel ise jaotistes REST API ja Veebikonksud: millised võtmed ja veebikonksud seal on ning kas tead iga kohta, milleks see on?

Lisalugemist

Hetk…

Seadista oma domeenid

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

Laadin sinu domeene…