Modul 1 · 1.2
Kako deluje WooCommerce
Modul 1: Preden začnete · Čas branja: 10 minut
Učni cilj: Po tej lekciji boste znali razložiti, kako WooCommerce deluje v WordPressu ter kje so izdelki, naročila, košarica in načrtovana opravila.
Ključni pojmi: tip izdelka, vrsta prispevka product, naročila (HPOS), strani trgovine, seja in košarica, Store API, REST API, Action Scheduler, transakcijska e-sporočila, razširitve
Vtičnik, ki Vaše spletno mesto spremeni v trgovino
V tečaju o WordPressu (lekciji 1.2 in 1.3) ste videli, kako nastane stran: spletni strežnik zahtevo preda PHP, PHP naloži WordPress, vtičnike in temo, pridobi podatke iz zbirke podatkov in iz njih ustvari HTML. WooCommerce se v ta proces vključi kot velik vtičnik. S seboj prinese štiri stvari:
- Podatke: izdelke, naročila, stranke, davčne stopnje, območja pošiljanja.
- Strani: trgovino, košarico, zaključek nakupa in Moj račun.
- Procese: košarico za vsakega obiskovalca, plačila prek ponudnika plačil, e-sporočila, posodabljanje zaloge, načrtovana opravila.
- Vstopne točke za programe: Store API in REST API.
Kdor ve, kje so ti deli, bo pozneje napako našel veliko hitreje. Zato si jih zdaj ogledamo enega za drugim.
Izdelki: lastna vrsta prispevka
WordPress pozna vrste prispevkov: strani in prispevki sta dve izmed njih (tečaj o WordPressu, lekcija 4.2). WooCommerce doda vrsto prispevka product. Izdelek je torej, tako kot stran, shranjen v tabeli s prispevki, njegovi dodatni podatki (cena, SKU, zaloga, teža) pa kot metapodatki. Kategorije in oznake izdelkov so lastne taksonomije, ločene od taksonomij Vašega bloga.
Vsak izdelek ima tip izdelka. Osnovni tipi so enostaven, združen, zunanji (povezava do druge trgovine) in spremenljiv. Zraven lahko vklopite kljukici virtualno (ničesar ni treba poslati) in prenosljivo (datoteka po plačilu). Spremenljiv izdelek ima različice, na primer čajnik v treh barvah; vsaka različica je samostojna postavka z lastno ceno in zalogo. Modul 3 to obravnava podrobneje.
Naročila: lastne tabele (HPOS)
Nekoč je WooCommerce tudi naročila shranjeval kot prispevke. Pri obiskanih trgovinah je bilo to počasno, ker so si naročila in prispevki bloga delili isto veliko tabelo. Zato je prišel HPOS (High-Performance Order Storage): naročila v lastnih tabelah, kot so wc_orders, wc_order_addresses in wc_orders_meta (s predpono tabel Vašega spletnega mesta spredaj). Od WooCommerce 8.2 (oktober 2023) je HPOS vklopljen pri vsaki novi namestitvi. Starejša trgovina ostane na starem načinu shranjevanja, dokler sami ne preklopite pod WooCommerce > Nastavitve > Napredno > Zmožnosti.
Zakaj morate to vedeti? Iz treh razlogov:
- Varnostne kopije: naročila niso v Vaših datotekah, temveč v zbirki podatkov. Varnostna kopija brez zbirke podatkov je za spletno trgovino ničvredna (lekcija 6.2).
- Razširitve: starejša razširitev, ki naročila še bere kot prispevke, s HPOS ne deluje pravilno. WooCommerce pri vtičniku opozori, če ta ni združljiv.
- Obnovitev: če obnovite včerajšnjo varnostno kopijo, izginejo današnja naročila. Pri spletni trgovini je to veliko huje kot pri blogu (lekcija 6.2).
Košarica: za vsakega obiskovalca drugačna
Običajna stran je za vse obiskovalce enaka. Košarica ni. Ko obiskovalec nekaj doda v košarico, WooCommerce začne sejo: piškotek (wp_woocommerce_session_, ki mu sledi koda) v brskalniku in vrstico v tabeli sej v zbirki podatkov. Tako trgovina pri naslednji zahtevi ve, katera košarica pripada temu obiskovalcu.
Dve posledici, ki ju boste pozneje še srečali:
- Košarica, zaključek nakupa in Moj račun nikoli ne smejo priti v predpomnilnik strani, sicer en obiskovalec vidi košarico drugega. WooCommerce na teh straneh sam pošlje glave, ki predpomnjenje prepovedujejo (lekcija 6.4).
- Trgovina, ki sejo začne že pri vsakem obiskovalcu, tudi brez košarice, naredi predpomnilnik strani za celotno spletno mesto neuporaben. To je pogosta napaka tem in razširitev.
Strani trgovine in bloki
Ob namestitvi WooCommerce ustvari štiri strani: Trgovina, Košarica, Zaključek nakupa in Moj račun. Od različice 8.3 (november 2023) nove namestitve za košarico in zaključek nakupa uporabljajo bloke; starejše trgovine pogosto še uporabljajo kratke kode (shortcodes). Oboje deluje. Razlika je pomembna za razširitve: razširitev, ki nekaj doda zaključku nakupa, mora podpirati različico, ki jo uporabljate Vi. Lekcija 2.2 pokaže, kako to preverite.
Dve vstopni točki za programe: Store API in REST API
WooCommerce ima dve programabilni vstopni točki, razlika med njima pa je pomembna za varnost:
| Store API | REST API | |
|---|---|---|
| Naslov | /wp-json/wc/store/v1/... | /wp-json/wc/v3/... |
| Za koga | Za samo trgovino (bloke v brskalniku) in druge prodajne vmesnike | Povezave: računovodstvo, zaloga, aplikacije |
| Je potreben ključ? | Ne, javen: vsakdo lahko bere izdelke in cene | Da, API ključ s pravicami za branje ali pisanje |
| Kaj vsebuje | Izdelke, cene, stanje zaloge, košarico trenutnega obiskovalca | Tudi naročila, stranke, poročila |
To, da je Store API javen, ni luknja: prikazuje natanko to, kar vsak obiskovalec vidi v trgovini, le v obliki, ki jo programi lahko berejo. Preizkusite to na svoji trgovini: v brskalniku odprite https://shop.example.com/wp-json/wc/store/v1/products (s svojim naslovom) in videli boste svoje izdelke v obliki JSON. REST API pa mora biti brez ključa zaprt. Lekcija 2.4 preveri oboje.
V ozadju: Action Scheduler in e-sporočila
Veliko dela v spletni trgovini se ne zgodi, medtem ko stranka čaka, temveč pozneje. WooCommerce za to uporablja Action Scheduler: čakalno vrsto načrtovanih opravil, kot so preklic neplačanega naročila po nastavljenem času, pošiljanje spletnih kavljev (webhooks) ali posodabljanje poročil. Čakalno vrsto vidite pod WooCommerce > Stanje > Načrtovana dejanja. Ta opravila tečejo na WP-Cron, ki deluje le, kadar so na strani obiskovalci. Pri mirni trgovini lahko delo zato obstoji; lekcija 7.3 pokaže, kako to reši pravi cron.
Poleg tega WooCommerce pošilja transakcijska e-sporočila: sporočilo Vam ob novem naročilu ter sporočila stranki ob prejemu, pošiljanju, vračilu denarja ali novem računu. Če ta ne prispejo, stranka misli, da je šlo nekaj narobe. Lekcija 6.1 uredi dostavljivost.
V praksi: tako je videti v WooCommerce
V skrbništvu WordPressa trgovine Theehuis Example se po namestitvi pojavijo trije novi meniji: WooCommerce (naročila, stranke, nastavitve, stanje), Izdelki in Analitika (v novejših različicah včasih pod WooCommerce). Pod WooCommerce > Stanje najdete strežniško okolje, tabele zbirke podatkov, načrtovana dejanja in dnevnike. Ta zaslon boste kmalu pogosto potrebovali. Koraki so pri vsakem ponudniku gostovanja enaki, ker so v samem WordPressu.
Povzetek
- WooCommerce prinese podatke, strani, procese in dve programabilni vstopni točki.
- Izdelki so lastna vrsta prispevka; naročila so pri novih trgovinah v lastnih tabelah (HPOS, privzeto od 8.2).
- Košarica deluje s sejo za vsakega obiskovalca; zato košarica, zaključek nakupa in Moj račun ne smejo v predpomnilnik.
- Store API je javen in prikazuje to, kar vidi vsak obiskovalec; REST API mora biti brez ključa zaprt.
- Načrtovana opravila tečejo prek Action Scheduler in WP-Cron; e-sporočila so del postopka naročila.
Kviz
Naloga
Naloga A1.2: Ali to spletno mesto deluje na WooCommerce? Vnesite domeno, izberite da ali ne in zapišite, kateri dokaz ste videli (na primer "generator" ali "wc/store/v1"). Program pridobi domačo stran, prebere indeks REST (/wp-json/, samo seznam imenskih prostorov) in zahteva /wp-json/wc/store/v1/products?per_page=1. WooCommerce prepozna po meta generator z WooCommerce, imenskem prostoru wc/store/v1 v indeksu REST, delujočem Store API, datotekah iz /wp-content/plugins/woocommerce/ ali razredu body woocommerce. Zelena: Vaša izbira je pravilna in Vaš dokaz se pojavi v glavah, HTML, indeksu REST ali odgovoru Store API; takrat vidite tudi število izdelkov in valuto. Oranžna: Vaša izbira je pravilna, vendar Vašega dokaza ne najdemo. Rdeča: Vaša izbira ni pravilna. Najprej poskusite na svoji trgovini, nato na trgovini, ki jo poznate. Nič se ne doda v košarico in nič se ne pošlje.
Za nadaljnje branje
Kjer so navedeni koraki v nadzorni plošči, veljajo za WebOké; pri drugih ponudnikih deluje podobno.
- Brezplačni tečaj WordPress 1.2: Pod pokrovom: spletni strežnik, PHP in podatkovna zbirka
- Brezplačni tečaj WordPress 1.3: Datoteke, wp-config in podatkovna baza
- Brezplačni tečaj WordPress 4.2: Strani, prispevki, kategorije in oznake
- High-Performance Order Storage (developer.woocommerce.com, v angleščini): https://developer.woocommerce.com/docs/features/orders/high-performance-order-storage/
- Store API (developer.woocommerce.com, v angleščini): https://developer.woocommerce.com/docs/apis/store-api/
- Action Scheduler (v angleščini): https://actionscheduler.org/
