Hoppa till innehållet

Cookieinställningar

Välj vilka typer av cookies du tillåter. Du kan alltid ändra ditt val via Cookieinställningar längst ned på varje sida. Integritetspolicy

Nödvändiga

Alltid på

Behövs för att logga in, spara din varukorg och komma ihåg dina val. De är alltid på.

Vilka cookies?
  • weboke_sessie, weboke_klant, weboke_remember: din session och att du förblir inloggad
  • weboke_basket: din varukorg
  • wkBtwIncl: visa priser med eller utan moms
  • wok_cookies: ditt cookieval, 12 månader

Mäter vilken annons som leder till ett besök eller en beställning, så att vi inte betalar för annonser som inte ger något.

Vilka cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), upp till 90 dagar
  • OpenAI Ads, annonser i ChatGPT
  • wok_aff: via vilken partner du kom till oss (affiliateprogram), 60 dagar

4,6

Land och språk

Varje land har en egen webbplats med landets priser och moms.

Visa

Så fungerar WooCommerce

Modul 1: Innan du börjar · Lästid: 10 minuter

Lärandemål: Efter den här lektionen kan du förklara hur WooCommerce fungerar i WordPress och var produkter, beställningar, varukorgen och de schemalagda uppgifterna finns.

Nyckelbegrepp: produkttyp, inläggstypen product, beställningar (HPOS), butikssidor, session och varukorg, Store API, REST API, Action Scheduler, transaktionsmejl, tillägg

Ett tillägg som gör din webbplats till en butik

I WordPress-kursen (lektion 1.2 och 1.3) såg du hur en sida skapas: webbservern lämnar förfrågan till PHP, PHP laddar WordPress, tilläggen och temat, hämtar data ur databasen och gör HTML av det. WooCommerce kopplar in sig i den processen som ett stort tillägg. Det tar med sig fyra saker:

  1. Data: produkter, beställningar, kunder, skattesatser, fraktzoner.
  2. Sidor: butiken, varukorgen, kassan och Mitt konto.
  3. Processer: en varukorg per besökare, betalningar via en betalleverantör, mejl, uppdatering av lagret, schemalagda uppgifter.
  4. Ingångar för program: Store API och REST API.

Den som vet var de här delarna finns hittar senare ett fel mycket snabbare. Därför tittar vi på dem en i taget nu.

Produkter: en egen inläggstyp

WordPress har inläggstyper: sidor och inlägg är två av dem (WordPress-kursen lektion 4.2). WooCommerce lägger till inläggstypen product. En produkt finns alltså, precis som en sida, i tabellen med inlägg, med sina extra uppgifter (pris, artikelnummer/SKU, lager, vikt) som metadata. Produktkategorier och produktetiketter är egna taxonomier, åtskilda från dem i din blogg.

Varje produkt har en produkttyp. I grunden är det enkel, grupperad, extern (en länk till en annan butik) och variabel. Kryssrutorna virtuell (inget att skicka) och nedladdningsbar (en fil efter betalning) kan du slå på utöver det. En variabel produkt har varianter, till exempel en tekanna i tre färger; varje variant är en egen artikel med eget pris och eget lager. Modul 3 går djupare in på detta.

Beställningar: egna tabeller (HPOS)

Förr sparade WooCommerce även beställningar som inlägg. I butiker med mycket trafik blev det långsamt, eftersom beställningar och blogginlägg delade samma stora tabell. Därför kom HPOS (High-Performance Order Storage): beställningar i egna tabeller, som wc_orders, wc_order_addresses och wc_orders_meta (med webbplatsens tabellprefix framför). Sedan WooCommerce 8.2 (oktober 2023) är HPOS påslaget i varje ny installation. En äldre butik behåller den gamla lagringen tills du själv byter under WooCommerce > Inställningar > Avancerat > Funktioner.

Varför behöver du veta det här? Av tre skäl:

  • Säkerhetskopior: beställningarna finns inte i dina filer utan i databasen. En säkerhetskopia utan databas är värdelös för en butik (lektion 6.2).
  • Tillägg: ett äldre tillägg som fortfarande läser beställningar som inlägg fungerar inte bra med HPOS. WooCommerce varnar vid tillägget om det inte är kompatibelt.
  • Återställ: återställer du en säkerhetskopia från i går försvinner dagens beställningar. Det är mycket värre för en butik än för en blogg (lektion 6.2).

Varukorgen: olika för varje besökare

En vanlig sida är likadan för alla besökare. Det är inte varukorgen. Så fort en besökare lägger något i varukorgen startar WooCommerce en session: en cookie (wp_woocommerce_session_ följt av en kod) i webbläsaren och en rad i en sessionstabell i databasen. Så vet butiken vid nästa förfrågan vilken varukorg som hör till den här besökaren.

Två följder som du kommer att se igen:

  • Varukorgen, kassan och Mitt konto får aldrig hamna i en sidcache, annars ser en besökare en annans varukorg. WooCommerce skickar själv med HTTP-rubriker på de sidorna som förbjuder cachning (lektion 6.4).
  • En butik som startar en session för varje besökare, även utan varukorg, gör sidcachen för hela webbplatsen meningslös. Det är ett vanligt fel i teman och tillägg.

Butikssidorna och blocken

Vid installationen skapar WooCommerce fyra sidor: Butik, Varukorg, Kassa och Mitt konto. Sedan version 8.3 (november 2023) använder nya installationer block för varukorg och kassa; äldre butiker använder ofta fortfarande kortkoder. Båda fungerar. Skillnaden är viktig för tillägg: ett tillägg som lägger till något i kassan måste stödja den variant du använder. Lektion 2.2 visar hur du kontrollerar det.

Två ingångar för program: Store API och REST API

WooCommerce har två programmerbara ingångar, och skillnaden är viktig för säkerheten:

Store APIREST API
Adress/wp-json/wc/store/v1/.../wp-json/wc/v3/...
För vemSjälva butiken (blocken i webbläsaren) och andra butiksgränssnittIntegrationer: bokföring, lager, appar
Krävs nyckel?Nej, offentlig: alla kan läsa produkter och priserJa, en API-nyckel med läs- eller skrivbehörighet
Vad finns därProdukter, priser, lagerstatus, den aktuella besökarens varukorgÄven beställningar, kunder, rapporter

Att Store API är offentligt är ingen läcka: det är precis det som varje besökare ser i butiken, bara i en form som program kan läsa. Testa med din egen butik: öppna https://shop.example.com/wp-json/wc/store/v1/products i webbläsaren (med din egen adress) så ser du dina produkter som JSON. REST API ska däremot vara stängt utan nyckel. Lektion 2.4 kontrollerar båda.

Bakom kulisserna: Action Scheduler och mejl

Mycket av arbetet i en butik sker inte medan kunden väntar, utan senare. WooCommerce använder Action Scheduler för det: en kö av schemalagda uppgifter, som att avbryta en obetald beställning efter den inställda tiden, skicka webhooks eller uppdatera rapporter. Du ser kön under WooCommerce > Status > Schemalagda åtgärder. Uppgifterna körs via WP-Cron, som bara körs när det finns besökare. I en lugn butik kan arbete då bli liggande; lektion 7.3 visar hur en riktig cron löser det.

Dessutom skickar WooCommerce transaktionsmejl: ett mejl till dig vid en ny beställning och mejl till kunden när beställningen tagits emot, skickats, återbetalats eller när ett nytt konto skapats. Kommer de inte fram tror kunden att något är fel. Lektion 6.1 ordnar leveransbarheten.

I praktiken: så ser det ut i WooCommerce

I WordPress-adminpanelen hos Theehuis Example dyker tre nya menyer upp efter installationen: WooCommerce (beställningar, kunder, inställningar, status), Produkter och Analys (i senare versioner ibland under WooCommerce). Under WooCommerce > Status hittar du servermiljön, databastabellerna, de schemalagda åtgärderna och loggarna. Den skärmen kommer du att behöva ofta. Stegen är desamma hos alla webbhotell, eftersom de finns i själva WordPress.

Sammanfattning

  • WooCommerce tar med sig data, sidor, processer och två programmerbara ingångar.
  • Produkter är en egen inläggstyp; beställningar finns i nya butiker i egna tabeller (HPOS, standard sedan 8.2).
  • Varukorgen fungerar med en session per besökare; därför får varukorgen, kassan och Mitt konto inte hamna i cachen.
  • Store API är offentligt och visar det som varje besökare ser; REST API ska vara stängt utan nyckel.
  • Schemalagda uppgifter körs via Action Scheduler och WP-Cron; mejl är en del av beställningsprocessen.

Quiz

1. Var finns beställningarna i en ny WooCommerce-butik med HPOS?



2. Varför startar WooCommerce en session när en besökare lägger något i varukorgen?



3. Någon öppnar /wp-json/wc/store/v1/products i din butik utan att logga in och ser dina produkter med priser. Vad är detta?



4. I en lugn butik avbryts en obetald beställning först flera timmar senare i stället för efter den inställda tiden. Vad är den troliga orsaken?



Uppgift

Uppgift A1.2: Körs den här webbplatsen på WooCommerce? Fyll i en domän, välj ja eller nej och skriv vilket bevis du såg (till exempel "generator" eller "wc/store/v1"). Programmet hämtar startsidan, läser REST-indexet (/wp-json/, bara listan med namespaces) och frågar efter /wp-json/wc/store/v1/products?per_page=1. Det känner igen WooCommerce på en meta generator med WooCommerce, namespacet wc/store/v1 i REST-indexet, ett fungerande Store API, filer från /wp-content/plugins/woocommerce/ eller body-klassen woocommerce. Grön: ditt val stämmer och ditt bevis finns i HTTP-rubrikerna, HTML-koden, REST-indexet eller svaret från Store API; du ser då också antalet produkter och valutan. Orange: ditt val stämmer, men vi hittar inte ditt bevis. Röd: ditt val stämmer inte. Testa först på din egen butik och sedan på en butik som du känner till. Inget läggs i någon varukorg och inget skickas.

Uppgift A1.2: Körs den här webbplatsen på WooCommerce?




Det du fyller i och det vi hittar sparar vi inte. Din webbläsare kommer ihåg dina svar och om du klarade uppgiften. Är du inloggad sparar vi bara att du klarade uppgiften (nästan) i Mina kurser; där kan du också ta bort det.

Läs mer

Där steg i en kontrollpanel beskrivs gäller de för WebOké; hos andra leverantörer fungerar det på liknande sätt.

Ett ögonblick…

Ställ in dina domäner

Ställ in namnservrar, koppling till ditt webbhotell och vem som blir innehavare för varje domän.

Hämtar dina domäner…