Modul 1 · 1.2
Hogyan működik a WooCommerce
Modul 1: Mielőtt elkezdené · Olvasási idő: 10 perc
Tanulási cél: A lecke után el tudja magyarázni, hogyan működik a WooCommerce a WordPressben, és hol találhatók a termékek, a rendelések, a kosár és az időzített feladatok.
Kulcsfogalmak: terméktípus, product bejegyzéstípus, rendelések (HPOS), áruházi oldalak, munkamenet és kosár, Store API, REST API, Action Scheduler, tranzakciós e-mailek, bővítmények
Egy bővítmény, amely áruházat csinál a webhelyéből
A WordPress-tanfolyamon (1.2. és 1.3. lecke) láthatta, hogyan jön létre egy oldal: a webszerver átadja a kérést a PHP-nek, a PHP betölti a WordPresst, a bővítményeket és a sablont, adatokat kér le az adatbázisból, és HTML-t készít belőlük. A WooCommerce egy nagy bővítményként illeszkedik ebbe a folyamatba. Négy dolgot hoz magával:
- Adatok: termékek, rendelések, vásárlók, adókulcsok, szállítási zónák.
- Oldalak: a bolt, a kosár, a pénztár és a Fiókom oldal.
- Folyamatok: látogatónként egy kosár, fizetés egy fizetési szolgáltatón keresztül, e-mailek, a készlet frissítése, időzített feladatok.
- Belépési pontok programok számára: a Store API és a REST API.
Aki tudja, hol találhatók ezek az elemek, később sokkal gyorsabban megtalál egy hibát. Ezért most egyenként megnézzük őket.
Termékek: saját bejegyzéstípus
A WordPress bejegyzéstípusokat ismer: az oldalak és a bejegyzések ezek közül kettő (WordPress-tanfolyam, 4.2. lecke). A WooCommerce hozzáadja a product bejegyzéstípust. Egy termék tehát, akárcsak egy oldal, a bejegyzések táblájában tárolódik, a további adatai (ár, cikkszám (SKU), készlet, tömeg) pedig metaadatként. A termékek kategóriái és címkéi saját taxonómiák, függetlenek a blogja kategóriáitól és címkéitől.
Minden terméknek van egy terméktípusa. Alapesetben ezek: egyszerű, csoportos, külső (hivatkozás egy másik áruházra) és variálható. Ehhez bekapcsolható a virtuális (nincs mit szállítani) és a letölthető (fizetés után egy fájl) jelölőnégyzet. Egy variálható terméknek változatai vannak, például egy teáskanna három színben; minden változat önálló tétel, saját árral és készlettel. A 3. modul részletesebben foglalkozik ezzel.
Rendelések: saját táblák (HPOS)
Korábban a WooCommerce a rendeléseket is bejegyzésként tárolta. A forgalmas áruházaknál ez lassú lett, mert a rendelések és a blogbejegyzések ugyanazon a nagy táblán osztoztak. Ezért jött létre a HPOS (High-Performance Order Storage): a rendelések saját táblákban, például wc_orders, wc_order_addresses és wc_orders_meta (előttük a webhely táblaelőtagjával). A WooCommerce 8.2 (2023. október) óta a HPOS minden új telepítésnél be van kapcsolva. Egy régebbi áruház a régi tárolási módnál marad, amíg Ön át nem vált a WooCommerce > Beállítások > Haladó > Funkciók menüpontban.
Miért fontos ezt tudni? Három okból:
- Biztonsági mentések: a rendelések nem a fájlokban, hanem az adatbázisban vannak. Egy adatbázis nélküli mentés egy webáruháznak semmit sem ér (6.2. lecke).
- Bővítmények: egy régebbi bővítmény, amely a rendeléseket még bejegyzésként olvassa, nem működik jól a HPOS-szal. A WooCommerce figyelmeztet a bővítménynél, ha az nem kompatibilis.
- Visszaállítás: ha visszaállít egy tegnapi mentést, a mai rendelések eltűnnek. Ez egy webáruháznál sokkal súlyosabb, mint egy blognál (6.2. lecke).
A kosár: látogatónként más
Egy hagyományos oldal minden látogatónak ugyanaz. A kosár nem. Amint egy látogató betesz valamit a kosárba, a WooCommerce munkamenetet indít: egy sütit (wp_woocommerce_session_, utána egy kóddal) a böngészőben és egy sort egy munkamenet-táblában az adatbázisban. Így az áruház a következő kérésnél tudja, melyik kosár tartozik ehhez a látogatóhoz.
Két következmény, amellyel később is találkozni fog:
- A kosár, a pénztár és a Fiókom oldal soha nem kerülhet oldalgyorsítótárba, különben az egyik látogató a másik kosarát látja. A WooCommerce ezeken az oldalakon maga is olyan fejléceket küld, amelyek tiltják a gyorsítótárazást (6.4. lecke).
- Az az áruház, amely minden látogatónál már eleve munkamenetet indít, kosár nélkül is, használhatatlanná teszi a teljes webhely oldalgyorsítótárát. Ez a sablonok és bővítmények gyakori hibája.
Az áruházi oldalak és a blokkok
Telepítéskor a WooCommerce négy oldalt hoz létre: Bolt, Kosár, Pénztár és Fiókom. A 8.3-as verzió (2023. november) óta az új telepítések a kosárhoz és a pénztárhoz blokkokat használnak; a régebbi áruházak gyakran még shortcode-okat. Mindkettő működik. A különbség a bővítményeknél fontos: egy bővítménynek, amely valamit hozzáad a pénztárhoz, támogatnia kell azt a változatot, amelyet Ön használ. A 2.2. lecke megmutatja, hogyan ellenőrizheti ezt.
Két belépési pont programok számára: Store API és REST API
A WooCommerce két programozható belépési ponttal rendelkezik, és a különbség a biztonság szempontjából fontos:
| Store API | REST API | |
|---|---|---|
| Cím | /wp-json/wc/store/v1/... | /wp-json/wc/v3/... |
| Kinek szól | Magának az áruháznak (a böngészőben futó blokkoknak) és más áruházi felületeknek | Összekapcsolásoknak: könyvelés, készletkezelés, alkalmazások |
| Kell kulcs? | Nem, nyilvános: bárki olvashatja a termékeket és az árakat | Igen, egy olvasási vagy írási jogosultságú API-kulcs |
| Mit tartalmaz | Termékek, árak, készletállapot, az aktuális látogató kosara | Rendelések, vásárlók és jelentések is |
Az, hogy a Store API nyilvános, nem adatszivárgás: pontosan azt mutatja, amit minden látogató lát az áruházban, csak olyan formában, amelyet programok is be tudnak olvasni. Próbálja ki a saját áruházával: nyissa meg a https://shop.example.com/wp-json/wc/store/v1/products címet a böngészőjében (a saját címével), és JSON formátumban látja a termékeit. A REST API-nak ezzel szemben kulcs nélkül zárva kell lennie. A 2.4. lecke mindkettőt ellenőrzi.
A háttérben: Action Scheduler és e-mailek
Egy webáruházban sok munka nem akkor történik, amíg a vásárló vár, hanem később. A WooCommerce ehhez az Action Scheduler eszközt használja: időzített feladatok várólistáját, például egy ki nem fizetett rendelés törlését a beállított idő után, webhookok küldését vagy jelentések frissítését. A várólistát a WooCommerce > Állapot > Időzített műveletek menüpontban látja. Ezek a feladatok a WP-Cronon futnak, amely csak akkor működik, ha vannak látogatók. Egy csendes áruháznál így munka maradhat el; a 7.3. lecke megmutatja, hogyan oldja meg ezt egy valódi cron.
Emellett a WooCommerce tranzakciós e-maileket küld: Önnek egy e-mailt új rendeléskor, a vásárlónak pedig e-maileket a beérkezéskor, szállításkor, visszatérítéskor vagy új fiók létrehozásakor. Ha ezek nem érkeznek meg, a vásárló azt hiszi, hogy valami nincs rendben. A 6.1. lecke a kézbesíthetőséggel foglalkozik.
A gyakorlatban: így néz ki a WooCommerce-ben
A Theehuis Example WordPress-adminisztrációjában telepítés után három új menü jelenik meg: WooCommerce (rendelések, vásárlók, beállítások, állapot), Termékek és Analitika (újabb verziókban néha a WooCommerce alatt). A WooCommerce > Állapot menüpontban megtalálja a szerverkörnyezetet, az adatbázistáblákat, az időzített műveleteket és a naplókat. Erre a képernyőre később gyakran szüksége lesz. A lépések minden tárhelyszolgáltatónál azonosak, mert magában a WordPressben vannak.
Összefoglalás
- A WooCommerce adatokat, oldalakat, folyamatokat és két programozható belépési pontot hoz magával.
- A termékek saját bejegyzéstípust alkotnak; a rendelések az új áruházaknál saját táblákban vannak (HPOS, a 8.2 óta alapértelmezett).
- A kosár látogatónkénti munkamenettel működik; ezért a kosár, a pénztár és a Fiókom oldal nem kerülhet gyorsítótárba.
- A Store API nyilvános, és azt mutatja, amit minden látogató lát; a REST API-nak kulcs nélkül zárva kell lennie.
- Az időzített feladatok az Action Scheduleren és a WP-Cronon keresztül futnak; az e-mailek a rendelési folyamat részei.
Kvíz
Feladat
A1.2. feladat: Ez a webhely WooCommerce-szel működik? Adjon meg egy domaint, válassza az igent vagy a nemet, és írja le, milyen bizonyítékot látott (például „generator” vagy „wc/store/v1”). A program lekéri a kezdőlapot, beolvassa a REST-indexet (/wp-json/, csak a névterek listáját), és lekérdezi a /wp-json/wc/store/v1/products?per_page=1 címet. A WooCommerce-t egy WooCommerce-t tartalmazó meta generator elemről, a REST-indexben szereplő wc/store/v1 névtérről, egy működő Store API-ról, a /wp-content/plugins/woocommerce/ mappából betöltött fájlokról vagy a woocommerce body-osztályról ismeri fel. Zöld: a választása helyes, és a bizonyítéka megtalálható a fejlécekben, a HTML-ben, a REST-indexben vagy a Store API válaszában; ekkor a termékek számát és a pénznemet is látja. Narancssárga: a választása helyes, de a bizonyítékát nem találjuk. Piros: a választása nem helyes. Először a saját áruházán próbálja ki, utána egy Ön által ismert áruházon. Semmi sem kerül kosárba, és semmit sem küldünk el.
Bővebben olvasva
Ahol egy vezérlőpult lépései szerepelnek, azok a WebOkéra vonatkoznak; más szolgáltatóknál hasonlóan működik.
- Ingyenes WordPress-tanfolyam 1.2: A motorháztető alatt: webszerver, PHP és adatbázis
- Ingyenes WordPress-tanfolyam 1.3: Fájlok, wp-config és az adatbázis
- Ingyenes WordPress-tanfolyam 4.2: Oldalak, bejegyzések, kategóriák és címkék
- High-Performance Order Storage (developer.woocommerce.com, angol nyelven): https://developer.woocommerce.com/docs/features/orders/high-performance-order-storage/
- Store API (developer.woocommerce.com, angol nyelven): https://developer.woocommerce.com/docs/apis/store-api/
- Action Scheduler (angol nyelven): https://actionscheduler.org/
