Modul 1 · 1.2
Kako WooCommerce radi
Modul 1: Prije nego što počnete · Vrijeme čitanja: 10 minuta
Cilj učenja: Nakon ove lekcije moći ćete objasniti kako WooCommerce radi u WordPressu i gdje se nalaze proizvodi, narudžbe, košarica i zakazani zadaci.
Ključni pojmovi: vrsta proizvoda, vrsta objave proizvod, narudžbe (HPOS), stranice trgovine, sesija i košarica, Store API, REST API, Action Scheduler, transakcijske e-poruke, proširenja
Dodatak koji Vašu stranicu pretvara u trgovinu
U tečaju o WordPressu (lekcije 1.2 i 1.3) vidjeli ste kako nastaje stranica: web-poslužitelj prosljeđuje zahtjev PHP-u, PHP učitava WordPress, dodatke i temu, dohvaća podatke iz baze podataka i od njih izrađuje HTML. WooCommerce se u taj proces uključuje kao velik dodatak. Donosi četiri stvari:
- Podatke: proizvode, narudžbe, kupce, porezne stope, zone dostave.
- Stranice: trgovinu, košaricu, blagajnu i Moj račun.
- Procese: košaricu za svakog posjetitelja, plaćanja putem pružatelja usluga plaćanja, e-poruke, ažuriranje zaliha, zakazane zadatke.
- Ulaze za programe: Store API i REST API.
Tko zna gdje se ti dijelovi nalaze, kasnije će mnogo brže pronaći pogrešku. Zato ćemo ih sada pogledati jedan po jedan.
Proizvodi: vlastita vrsta objave
WordPress poznaje vrste objava: stranice i objave dvije su od njih (tečaj o WordPressu, lekcija 4.2). WooCommerce dodaje vrstu objave product. Proizvod se dakle, kao i stranica, nalazi u tablici s objavama, a njegovi dodatni podaci (cijena, SKU, zalihe, težina) spremaju se kao metapodaci. Kategorije i oznake proizvoda vlastite su taksonomije, odvojene od onih na Vašem blogu.
Svaki proizvod ima vrstu proizvoda. U osnovi su to jednostavni, grupirani, vanjski (poveznica na drugu trgovinu) i varijabilni proizvod. Uz to možete uključiti oznake virtualni (ništa se ne šalje) i preuzimanje (datoteka nakon plaćanja). Varijabilni proizvod ima varijacije, na primjer čajnik u tri boje; svaka varijacija zasebna je stavka s vlastitom cijenom i zalihama. Modul 3 o tome govori detaljnije.
Narudžbe: vlastite tablice (HPOS)
Nekad je WooCommerce i narudžbe spremao kao objave. U prometnim trgovinama to je postalo sporo jer su narudžbe i objave na blogu dijelile istu veliku tablicu. Zato je uveden HPOS (High-Performance Order Storage): narudžbe u vlastitim tablicama, kao što su wc_orders, wc_order_addresses i wc_orders_meta (s prefiksom tablica Vaše stranice ispred). Od verzije WooCommerce 8.2 (listopad 2023.) HPOS je uključen pri svakoj novoj instalaciji. Starija trgovina ostaje na starom načinu pohrane dok sami ne prijeđete na novi u WooCommerce > Postavke > Napredno > Značajke.
Zašto to trebate znati? Iz tri razloga:
- Sigurnosne kopije: narudžbe nisu u Vašim datotekama nego u bazi podataka. Sigurnosna kopija bez baze podataka za web-trgovinu je bezvrijedna (lekcija 6.2).
- Proširenja: starije proširenje koje narudžbe još čita kao objave ne radi dobro s HPOS-om. WooCommerce upozorava kod dodatka ako nije kompatibilan.
- Vraćanje: ako vratite jučerašnju sigurnosnu kopiju, današnje narudžbe nestaju. To je u web-trgovini mnogo gore nego na blogu (lekcija 6.2).
Košarica: drugačija za svakog posjetitelja
Obična stranica jednaka je za svakog posjetitelja. Košarica nije. Čim posjetitelj stavi nešto u košaricu, WooCommerce pokreće sesiju: kolačić (wp_woocommerce_session_ nakon kojeg slijedi kod) u pregledniku i redak u tablici sesija u bazi podataka. Tako trgovina pri sljedećem zahtjevu zna koja košarica pripada tom posjetitelju.
Dvije posljedice koje ćete kasnije ponovno susresti:
- Košarica, blagajna i Moj račun nikada ne smiju završiti u predmemoriji stranica, inače jedan posjetitelj vidi košaricu drugoga. WooCommerce na tim stranicama sam šalje zaglavlja koja zabranjuju predmemoriranje (lekcija 6.4).
- Trgovina koja svakom posjetitelju odmah pokreće sesiju, i bez košarice, čini predmemoriju stranica cijele stranice beskorisnom. To je česta pogreška tema i proširenja.
Stranice trgovine i blokovi
Pri instalaciji WooCommerce izrađuje četiri stranice: Trgovina, Košarica, Blagajna i Moj račun. Od verzije 8.3 (studeni 2023.) nove instalacije za košaricu i blagajnu koriste blokove; starije trgovine često još koriste kratke kodove (shortcodes). Oboje radi. Razlika je važna za proširenja: proširenje koje nešto dodaje blagajni mora podržavati inačicu koju Vi koristite. Lekcija 2.2 pokazuje kako to provjeriti.
Dva ulaza za programe: Store API i REST API
WooCommerce ima dva programabilna ulaza, a razlika među njima važna je za sigurnost:
| Store API | REST API | |
|---|---|---|
| Adresa | /wp-json/wc/store/v1/... | /wp-json/wc/v3/... |
| Za koga | Za samu trgovinu (blokove u pregledniku) i druga sučelja trgovine | Za povezivanja: knjigovodstvo, zalihe, aplikacije |
| Je li potreban ključ? | Ne, javan je: svatko može čitati proizvode i cijene | Da, API ključ s pravima čitanja ili pisanja |
| Što sadrži | Proizvode, cijene, stanje zaliha, košaricu trenutačnog posjetitelja | Također narudžbe, kupce, izvješća |
To što je Store API javan nije propust: to je upravo ono što svaki posjetitelj vidi u trgovini, samo u obliku koji programi mogu čitati. Isprobajte to na svojoj trgovini: otvorite https://shop.example.com/wp-json/wc/store/v1/products u pregledniku (sa svojom adresom) i vidjet ćete svoje proizvode kao JSON. REST API, naprotiv, bez ključa mora biti zatvoren. Lekcija 2.4 provjerava oboje.
Iza kulisa: Action Scheduler i e-poruke
Velik dio posla u web-trgovini ne odvija se dok kupac čeka, nego kasnije. WooCommerce za to koristi Action Scheduler: red čekanja zakazanih zadataka, kao što su otkazivanje neplaćene narudžbe nakon postavljenog vremena, slanje webhookova ili ažuriranje izvješća. Red čekanja vidite u WooCommerce > Status > Zakazane akcije. Ti se zadaci izvršavaju putem WP-Crona, koji radi samo kada ima posjetitelja. U mirnoj trgovini posao tada može ostati neobavljen; lekcija 7.3 pokazuje kako to rješava pravi cron.
Osim toga WooCommerce šalje transakcijske e-poruke: e-poruku Vama pri novoj narudžbi te e-poruke kupcu pri primitku, slanju, povratu novca ili otvaranju novog računa. Ako one ne stignu, kupac misli da nešto nije u redu. Lekcija 6.1 uređuje dostavljivost.
U praksi: ovako to izgleda u WooCommerceu
U WordPressovu administracijskom sučelju Theehuis Example nakon instalacije pojavljuju se tri nova izbornika: WooCommerce (narudžbe, kupci, postavke, status), Proizvodi i Analitike (u novijim verzijama ponekad pod WooCommerce). U WooCommerce > Status pronaći ćete okruženje poslužitelja, tablice baze podataka, zakazane akcije i zapisnike. Taj ćete zaslon uskoro često trebati. Koraci su jednaki kod svakog pružatelja hostinga jer se nalaze u samom WordPressu.
Sažetak
- WooCommerce donosi podatke, stranice, procese i dva programabilna ulaza.
- Proizvodi su vlastita vrsta objave; narudžbe su u novim trgovinama u vlastitim tablicama (HPOS, zadano od verzije 8.2).
- Košarica radi sa sesijom za svakog posjetitelja; zato košarica, blagajna i Moj račun ne smiju biti u predmemoriji.
- Store API je javan i prikazuje ono što vidi svaki posjetitelj; REST API bez ključa mora biti zatvoren.
- Zakazani zadaci izvršavaju se putem Action Schedulera i WP-Crona; e-poruke su dio postupka naručivanja.
Kviz
Zadatak
Zadatak A1.2: Radi li ova stranica na WooCommerceu? Upišite domenu, odaberite da ili ne i zapišite koji ste dokaz vidjeli (na primjer "generator" ili "wc/store/v1"). Program dohvaća početnu stranicu, čita REST indeks (/wp-json/, samo popis imenskih prostora) i traži /wp-json/wc/store/v1/products?per_page=1. WooCommerce prepoznaje po oznaci meta generator s WooCommerceom, imenskom prostoru wc/store/v1 u REST indeksu, Store API-ju koji radi, datotekama iz /wp-content/plugins/woocommerce/ ili klasi tijela stranice woocommerce. Zelena: Vaš je odabir točan, a Vaš se dokaz pojavljuje u zaglavljima, HTML-u, REST indeksu ili odgovoru Store API-ja; tada vidite i broj proizvoda i valutu. Narančasta: Vaš je odabir točan, ali Vaš dokaz ne nalazimo. Crvena: Vaš odabir nije točan. Isprobajte najprije na svojoj trgovini, a zatim na trgovini koju poznajete. Ništa se ne stavlja u košaricu i ništa se ne šalje.
Daljnje čitanje
Kada su navedeni koraci u upravljačkoj ploči, oni vrijede za WebOké; kod drugih pružatelja usluga postupak je sličan.
- Besplatan WordPress tečaj 1.2: Ispod haube: web poslužitelj, PHP i baza podataka
- Besplatan WordPress tečaj 1.3: Datoteke, wp-config i baza podataka
- Besplatan WordPress tečaj 4.2: Stranice, objave, kategorije i oznake
- High-Performance Order Storage (developer.woocommerce.com, na engleskom): https://developer.woocommerce.com/docs/features/orders/high-performance-order-storage/
- Store API (developer.woocommerce.com, na engleskom): https://developer.woocommerce.com/docs/apis/store-api/
- Action Scheduler (na engleskom): https://actionscheduler.org/
