Prijeđite na sadržaj

Postavke kolačića

Za svaku vrstu odaberite koje kolačiće dopuštate. Svoj odabir uvijek možete promijeniti putem poveznice Postavke kolačića na dnu svake stranice. Izjava o privatnosti

Nužni

Uvijek uključeni

Potrebni za prijavu, čuvanje košarice i pamćenje Vaših odabira. Uvijek su uključeni.

Koji kolačići?
  • weboke_sessie, weboke_klant, weboke_remember: Vaša sesija i to da ostanete prijavljeni
  • weboke_basket: Vaša košarica
  • wkBtwIncl: prikaz cijena s PDV-om ili bez njega
  • wok_cookies: Vaš odabir kolačića, 12 mjeseci

Mjeri koji oglas dovodi do posjeta ili narudžbe, kako ne bismo plaćali oglase koji ništa ne donose.

Koji kolačići?
  • Google Ads putem Google Tag Managera (_gcl_au, _gcl_aw), do 90 dana
  • OpenAI Ads, oglasi u ChatGPT-u
  • wok_aff: preko kojeg ste partnera došli k nama (partnerski program), 60 dana

4,6

Država i jezik

Svaka država ima vlastitu stranicu, s cijenama i PDV-om te države.

Pogledajte

Brzina i predmemorija u web-trgovini

Modul 6: Upravljanje i sigurnost · Vrijeme čitanja: 10 minuta

Cilj učenja: Nakon ove lekcije moći ćete postaviti predmemoriju za WooCommerce trgovinu tako da trgovina bude brza, a osobne stranice nikad ne završe u predmemoriji. To ćete moći i provjeriti u HTTP zaglavljima.

Ključni pojmovi: predmemorija stranice, iznimke (košarica, blagajna, Moj račun), kolačići koji zaobilaze predmemoriju, no-cache zaglavlja, DONOTCACHEPAGE, predmemorija objekata, Redis, fragmenti košarice, geolokacija s predmemorijom stranice, čišćenje zakazanih akcija

Dvije vrste stranica

Osnove predmemoriranja (predmemorija stranice, predmemorija preglednika, predmemorija objekata, OPcache, CDN) obrađene su u tečaju o WordPressu, lekcija 6.2. Ondje je navedeno i najvažnije pravilo za trgovine: osobne stranice ne smiju biti u predmemoriji stranice. Ova lekcija to detaljno razrađuje.

Trgovina ima dvije vrste stranica:

VrstaPrimjeriPredmemorija
Iste za svepočetna stranica, stranica trgovine, kategorije, stranice proizvoda, informativne stranicePredmemorija stranice: da, ovdje je najveći dobitak
Različite za svakog posjetiteljakošarica, blagajna, Moj račun, stranica za jednostrani raskid ugovora s prijavljenim kupcemPredmemorija stranice: nikad

Ako nešto pođe po zlu, to se odmah vidi: kupac vidi tuđu košaricu ili, još gore, nečiju adresu na stranici blagajne. To je ujedno i povreda osobnih podataka u smislu GDPR-a (KB 6749).

Što WooCommerce već sam radi

WooCommerce pomaže predmemoriji na tri načina. Dobro ih je poznavati kako biste primijetili kada ih nešto ukloni:

  1. Konstante. Na košarici, blagajni i stranici Moj račun WooCommerce postavlja DONOTCACHEPAGE (te iste konstante za predmemoriju objekata i baze podataka). Mnogi dodaci za predmemoriju čitaju tu konstantu i tada preskaču stranicu.
  2. Zaglavlja. Na tim istim stranicama WooCommerce šalje WordPressova no-cache zaglavlja: Cache-Control: no-cache, must-revalidate, max-age=0, private i Expires s datumom u prošlosti. Proxy ili CDN koji poštuje pravila tada ne sprema stranicu. Za prijavljene korisnike dodaje se i no-store.
  3. Kolačići. Čim netko stavi nešto u košaricu, WooCommerce postavlja kolačiće kao što su woocommerce_items_in_cart, woocommerce_cart_hash i wp_woocommerce_session_.... Dobre predmemorije posjetiteljima s takvim kolačićem više ne poslužuju spremljenu stranicu, ni za stranice proizvoda, jer je tada primjerice košarica u zaglavlju stranice različita za svakog posjetitelja.

Dokumentacija WooCommercea za dodatke za predmemoriju navodi: izuzmite košaricu, Moj račun i blagajnu te kolačiće woocommerce_cart_hash, woocommerce_items_in_cart, wp_woocommerce_session_, woocommerce_recently_viewed i store_notice[...]. Za Varnish daje i pravila za adrese s ?add-to-cart=.

Gdje u praksi nastaju problemi

  • Druge adrese za stranice trgovine. Preimenovali ste košaricu u /mandje/ ili dodatak za prijevod stvara /de/warenkorb/. Predmemorija koja izuzima fiksne adrese poput /cart to neće prepoznati. Dodaci za predmemoriju koji poznaju WooCommerce čitaju stranice iz postavki; predmemorija na poslužitelju ili kod CDN-a to ne radi.
  • CDN koji sprema sve. Neka pravila CDN-a ("cache everything") zanemaruju zaglavlja. U tom slučaju izričito izuzmite stranice trgovine i navedene kolačiće.
  • Dodatak koji prepisuje zaglavlja. Dodatak za sigurnost ili brzinu ponekad na svaku stranicu postavlja Cache-Control: public, max-age=.... Tada no-cache zaglavlja više nisu prisutna.
  • Sesija za svakog posjetitelja. WooCommerce inače postavlja kolačić sesije tek kad je nešto u košarici. Ako dodatak ili tema već svakom posjetitelju otvara sesiju (kolačić wp_woocommerce_session_ ili PHPSESSID pri prvom posjetu), predmemorija stranice prestaje raditi za sve i Vaša je trgovina spora kad je velik promet.
  • Geolokacija. U WooCommerce > Postavke > Općenito odabirete zadanu lokaciju kupca. Uz običnu opciju "Geolokacija" poslužitelj za svakog posjetitelja izračunava državu, a kod cijena po državama to se ne slaže s predmemorijom stranice. Zato WooCommerce nudi opciju "Geolokacija (s podrškom za predmemoriranje stranica)", koja državu određuje dodatnim zahtjevom u pregledniku. Ako prije plaćanja ne trebate cijene ili PDV po državama, odaberite državu trgovine: to je najjednostavnije. Za geolokaciju WooCommerce povremeno preuzima bazu podataka tvrtke MaxMind.

Na LiteSpeed poslužitelju (kao kod WebOkéa) dodatak LiteSpeed Cache sam uređuje iznimke za WooCommerce; provjerite ih u postavkama za izuzimanje. Kod drugih web-poslužitelja i pružatelja hostinga to s drugim dodatkom za predmemoriju funkcionira slično.

Što predmemorija stranice ne rješava

Košaricu i blagajnu uvijek izgrađuju PHP i baza podataka. Pri velikom prometu (akcija, newsletter) upravo su to stranice na kojima Vaši kupci troše novac. Ondje pomažu druge stvari:

  • Predmemorija objekata kao što je Redis sprema rezultate upita prema bazi podataka u memoriju. Kod trgovine, s mnogo stranica koje ne mogu biti u predmemoriji stranice, to donosi osjetno više nego kod obične stranice. Vaš hosting mora nuditi Redis (kod WebOkéa je to moguće, DA 15.7); zatim ga uključite pomoću dodatka.
  • Fragmenti košarice. Klasične teme ažuriraju košaricu u zaglavlju stranice skriptom (wc-cart-fragments) koja kod pune košarice šalje dodatni zahtjev. Modernim blok-temama s blokom mini košarice to je manje potrebno. Ne učitavajte takve skripte na stranicama na kojima ništa ne rade.
  • Očišćene zakazane akcije. WooCommerce koristi Action Scheduler za pozadinske zadatke (lekcija 7.3). Dovršene akcije zadano se brišu nakon mjesec dana. Ako popis ipak naraste na stotine tisuća, često zbog proširenja koje stalno nešto zakazuje ili zbog neuspjelih akcija, upiti prema bazi podataka postaju sporiji. U WooCommerce > Status > Zakazane akcije pogledajte broj neuspjelih akcija i akcija na čekanju.
  • HPOS. Narudžbe u vlastitim tablicama (lekcija 1.2) omogućuju brže pretraživanje narudžbi nego u staroj tablici objava. Postojeće trgovine moraju same prijeći na njih (lekcija 6.2 o sigurnosnim kopijama prije toga).
  • Aktualna verzija PHP-a i dovoljno memorije (lekcija 7.2).

U praksi: ovako to izgleda u WooCommerceu

Provjerite to kod Theehuis Example u privatnom prozoru s alatima za razvojne programere u Vašem pregledniku (F12, kartica Mreža, prvi zahtjev):

  1. Početnu stranicu učitajte dvaput: pri drugom učitavanju vidite zaglavlje kao x-litespeed-cache: hit ili cf-cache-status: HIT. Nema kolačića wp_woocommerce_session_ pri prvom posjetu.
  2. shop.example.com/winkelwagen/ učitajte dvaput: nema pogotka, a cache-control sadrži no-cache ili private.
  3. Isto za blagajnu i Moj račun.
  4. Stavite proizvod u košaricu i učitajte stranicu proizvoda: vidite vlastitu košaricu, a ne spremljenu verziju.

Sažetak

  • Stranice koje su iste za sve idu u predmemoriju; košarica, blagajna i Moj račun nikad.
  • WooCommerce sam postavlja DONOTCACHEPAGE, no-cache zaglavlja i kolačiće; provjerite da ih ništa ne uklanja ili zanemaruje.
  • Pazite na preimenovane adrese, pravila CDN-a, dodatke koji prepisuju zaglavlja, sesije za svakog posjetitelja i geolokaciju.
  • Redis, očišćene zakazane akcije, HPOS i dobra verzija PHP-a pomažu ondje gdje predmemorija stranice ne može.
  • Testirajte dvostrukim učitavanjem u privatnom prozoru i pročitajte zaglavlja.

Kviz

1. Kupac u svojoj košarici vidi proizvode koje nije odabrao. Koji je najvjerojatniji uzrok?



2. Koje zaglavlje očekujete na stranici blagajne WooCommerce trgovine?



3. Vaša trgovina ne prikazuje cijene po državama, ali je zadana lokacija postavljena na "Geolokacija". Koje je jednostavno poboljšanje za predmemoriju?



4. Zašto Redis kod trgovine pomaže više nego kod obične informativne stranice?



Zadatak

Zadatak A6.4: Ostaju li košarica i blagajna izvan predmemorije? Unesite adresu svoje trgovine te adrese košarice i stranice blagajne (i po želji stranice Moj račun). Program dvaput zahtijeva početnu stranicu s razmakom od 2 sekunde, bez kolačića, a zatim i svaku stranicu trgovine dvaput. Ništa se ne stavlja u košaricu i ništa se ne naručuje. Zeleno ako početna stranica pri drugom zahtjevu dolazi iz predmemorije (ili je očito brža) bez postavljanja kolačića sesije, te ako svaka stranica trgovine pri drugom zahtjevu nema pogodak predmemorije i šalje Cache-Control s no-cache, no-store, private ili max-age=0. Narančasto ako početna stranica ne koristi predmemoriju ili ako stranica trgovine nema pogodak, ali nema ni no-cache zaglavlje. Crveno ako postoji pogodak predmemorije na košarici, blagajni ili stranici Moj račun, ili ako početna stranica svakom posjetitelju pokreće WooCommerce sesiju.

Zelena kvačica znači da je ova provjera trenutačno u redu, a ne da je Vaša trgovina sigurna.

Zadatak A6.4: Ostaju li košarica i blagajna izvan predmemorije?





Ono što unesete i što pronađemo ne spremamo. Vaš preglednik pamti Vaše odgovore i je li zadatak položen. Ako ste prijavljeni, u Moji tečajevi čuvamo samo podatak da ste zadatak (gotovo) uspješno riješili; ondje to možete i izbrisati.

Daljnje čitanje

Koraci u upravljačkoj ploči odnose se na WebOké; kod drugih pružatelja usluga postupak je sličan.

Trenutak…

Postavite svoje domene

Za svaku domenu odredite nameservere, povezivanje s hostingom i tko postaje vlasnik.

Učitavanje Vaših domena…