# Gyorsítótár és optimalizálás kivételei

> Mely oldalakat, sütiket, kéréseket és szkripteket zárd ki a gyorsítótárból és az optimalizálásból, hogy a kosár és a pénztár hibátlanul működjön.

A FluentCart használatához nem kell az egész webhelyen kikapcsolnod a gyorsítótárat. Az állandó, nyilvános oldalak maradhatnak gyorsítótárazva, csak néhány célzott kivételt kell felvenned, hogy minden vásárló a saját kosarát lássa, és hiba nélkül fizethessen.

Két különböző beállításcsoportról van szó:

- **Oldal-gyorsítótár kivételei:** szabályok, amelyek megakadályozzák, hogy a gyorsítótár-bővítmény, a tárhely vagy a CDN elmentse és újra felhasználja egy oldal HTML-jét. Ezeket URL, süti vagy kérés alapján adod meg.
- **Szkriptoptimalizálás kivételei:** szabályok, amelyek megakadályozzák, hogy egy optimalizáló eszköz összevonjon, késleltessen, halasszon vagy tömörítsen bizonyos JavaScript-fájlokat. Ezeket szkriptazonosító (handle) vagy fájlnév alapján adod meg, nem URL szerint.

## A kosár és a pénztár oldalának megkeresése

A szabályok felvétele előtt nézd meg, melyik oldalakat használja az áruházad. Nyisd meg a **FluentCart Pro → Beállítások** oldalt, és kattints az **Oldalak** fülre. Az ott kiválasztott kosár- és pénztároldalt kell kizárnod.

Mindig az oldal tényleges URL-jét használd. A FluentCart alapértelmezetten a `/cart/` és a `/checkout/` oldalt hozza létre, de a WordPress más címkét (slugot) is adhatott, például `/checkout-2/`.

## Oldal-gyorsítótár kivételei

A szabályokat a gyorsítótár-bővítményben, a tárhely gyorsítótár-paneljén vagy a CDN-ben add meg. Keress olyan beállításokat, mint „Never cache URLs”, „Exclude pages”, „Never cache cookies” vagy „Bypass cache”.

### 1. A kosár és a pénztár oldalának kizárása

Vedd fel a kosár- és a pénztároldal URL-jét a „soha ne gyorsítótárazd” listára. Mindkét oldal az aktuális vásárlónak készül: az ő tételeit, végösszegét, kuponjait és fizetési adatait mutatja.

### 2. A `fct_cart_hash` paramétert tartalmazó pénztár-URL-ek

A „Vásárlás most” gombok, a felugró ablakos pénztár és egyes fizetési folyamatok olyan pénztár-URL-re küldik a vásárlót, amely azonosítja a kosarát:

```text
/checkout/?fct_cart_hash=...
```

Zárj ki minden olyan URL-t, amely tartalmazza ezt:

```text
fct_cart_hash
```

Arra is figyelj, hogy a gyorsítótár ne hagyja figyelmen kívül és ne vágja le ezt a lekérdezési paramétert, mert a FluentCartnak szüksége van rá a megfelelő kosár betöltéséhez.

### 3. A kosár tartalma más oldalakon

A kosárfiók (az oldalsó kosár és a kosárszámláló) az áruház minden oldalán megjelenik. Ha a vásárló betett egy terméket, a kosár tételei az oldal HTML-jébe is bekerülnek, a termék- és bolti oldalakon is. Ha ezeket megosztott gyorsítótárból szolgálják ki, az oldalsó kosár és a pénztár eltérhet egymástól.

Hogy a nyilvános oldalak gyorsítótárazva maradjanak, de a kosárral rendelkező vásárlók védve legyenek, kerüld meg a gyorsítótárat, ha ez a süti jelen van:

```text
fct_cart_hash
```

A FluentCart akkor állítja be ezt a sütit, amikor a látogató az első terméket a kosárba teszi. A kosár nélküli látogatók továbbra is gyorsítótárazott oldalakat kapnak.

### 4. A pénztári AJAX-kérés megkerülése

A kosár, a kuponok, a szállítási lehetőségek és a pénztári összesítő egyetlen háttérben futó AJAX-kérésen keresztül frissül. Ezt a kérést ne gyorsítótárazd, vagyis azt, amelyben:

```text
action=fluent_cart_checkout_routes
```

A WordPress az `admin-ajax.php` válaszait eleve gyorsítótárazhatatlannak jelöli, ezért a legtöbb gyorsítótár-bővítmény magától kihagyja őket. A szabály főleg azoknál a szerver- vagy CDN-szabályoknál számít, amelyek mindent gyorsítótáraznak, a lekérdezési paraméteres kéréseket is.

### 5. A bejelentkezett felhasználók kihagyása

A legtöbb gyorsítótár-eszköz alapból kihagyja a bejelentkezett felhasználókat. Hagyd ezt bekapcsolva. A bejelentkezett vásárló kosara és mentett pénztári címei a fiókjához tartoznak, ezért az oldalait nem szabad megosztott gyorsítótárból kiszolgálni.

## Szkriptoptimalizálás kivételei

Ezek a szabályok nem az oldal-gyorsítótárat szabályozzák. Azt mondják meg az optimalizáló eszköznek, hogy mely FluentCart-szkripteket hagyja békén, amikor a JavaScriptet tömöríti, összevonja, késlelteti vagy halasztja.

A FluentCart szkriptjeinek többsége JavaScript-modulként (`type="module"`) töltődik be, és többjük futás közben további közös fájlokat tölt be. Ha más szkriptekkel összevonod őket, vagy megváltoztatod a betöltésük módját, a kosár vagy a pénztár leállhat.

Az eszközök egy része a szkriptazonosítót (handle), más része a fájlnevet kéri. A HTML-elem azonosítója a handle és a `-js` összetétele (például az `fct-checkout` így jelenik meg: `id="fct-checkout-js"`).

### Kosár- és pénztárszkriptek

Ezeket minden áruházban zárd ki, mert a kosár és a pénztár működését adják.

| Handle | Fájl | Hol töltődik be |
|---|---|---|
| `fluent-cart-app` | `FluentCartApp.js` | Minden előoldali oldalon (kosárfiók és kosárba tétel) |
| `fluent-cart-fluentcart-toastify-notify-style` | `toastify-js-1.12.0.js` | Minden előoldali oldalon (kosárértesítések) |
| `fct-checkout` | `FluentCartCheckout.js` | A pénztáron, ha van tétel a kosárban |
| `fct-orderbump` | `orderbump.js` | A pénztáron, ha van tétel a kosárban |

### Termék- és boltoldali szkriptek

Ezeket akkor zárd ki, ha az optimalizáló eszköz a termék- és boltoldalakat is feldolgozza. Ezek a szkriptek kezelik a változatok kiválasztását, a kosárba tétel gombokat, a képnagyítást és a bolti szűrőket.

| Handle | Fájl | Hol töltődik be |
|---|---|---|
| `fluent-cart-single-product-page` | `xzoom.js` | Egyedi termékoldalak (képnagyítás) |
| `fluent-cart-single-product-page_1` | `SingleProduct.js` | Egyedi termékoldalak (változatok és kosárba tétel) |
| `fluent-cart-single-product-page_2` | `Reviews2.js` | Egyedi termékoldalak (értékelések) |
| `fluent-cart-product-card-js` | `product-card2.js` | Termékkártyákat megjelenítő oldalak |
| `fluent-cart-fluentcart-product-page-js` | `ShopApp.js` | Bolti és terméklista-oldalak |
| `fluent-cart-fluentcart-product-filter-slider` | `nouislider-15.7.1.min.js` | Az ársávszűrős boltoldalak |
| `fluentcart-single-product-js` | `SingleProduct.js` | Bolti és terméklista-oldalak |
| `fluentcart-zoom-js` | `xzoom.js` | Bolti és terméklista-oldalak |

### Egyéb szkriptek

Ezek csak különleges helyzetekben számítanak:

- `fluentcart-customer-js`: csak a vásárlói profil (fiók) oldalon töltődik be. Akkor zárd ki, ha az oldal az optimalizálás után hibásan működik. A kosárra és a pénztárra nincs hatással.
- `cloudflare-turnstile`: a pénztáron csak akkor töltődik be, ha a Cloudflare Turnstile integráció aktív, és el van mentve a webhelykulcs. Ha nem használod a Turnstile-t, kihagyhatod.
- Fizetési átjárók szkriptjei: az olyan fizetési módok szkriptjei, mint a Stripe, csak a pénztáron és csak a bekapcsolt módokhoz töltődnek be. A FluentCart ezeket már megjelöli a `data-no-optimize="1"` és a `data-cfasync="false"` attribútummal, amelyet sok optimalizáló eszköz magától tiszteletben tart. Ha az eszközöd figyelmen kívül hagyja őket, és a fizetési űrlap nem jelenik meg, zárd ki ugyanígy a fizetési szolgáltatód szkriptjeit.

## A gyorsítótár-probléma jelei

A következő tünetek általában gyorsítótár- vagy optimalizálási szabályra utalnak. Bármelyik szabály módosítása után ürítsd ki az összes gyorsítótár-réteget (bővítmény, szerver és CDN), mielőtt újra tesztelsz.

| Tünet | Teendő |
|---|---|
| Az oldalsó kosár a legújabb tételt mutatja, a pénztár viszont régebbi kosarat. | Nézd át a kosár- és pénztároldal-kivételeket, a `fct_cart_hash` URL-szabályt és a `fct_cart_hash` süti megkerülését. |
| A pénztár URL-je tartalmazza a `fct_cart_hash` paramétert, de az oldal elavultnak látszik. | A pénztár URL-jét gyorsítótárazza a rendszer. Zárd ki azokat az URL-eket, amelyek tartalmazzák a `fct_cart_hash` szöveget. |
| A kuponok vagy a pénztári összesítő másképp viselkednek privát böngészőablakban. | Gyorsítótárazott oldal vagy kérés kiszolgálása lehet az ok. Nézd át az oldal-gyorsítótár kivételeit. |
| „Invalid nonce” hiba kosárba tételkor vagy kupon alkalmazásakor. | Az oldalak egy WordPress-biztonsági jelet hordoznak, amely alapértelmezetten 12 és 24 óra között lejár. Ha a gyorsítótár ennél tovább őrzi az oldalakat, ürítsd a gyorsítótárat, vagy rövidítsd az őrzési időt. |
| A pénztári űrlap, a rendelési ajánlat vagy a fizetési űrlap nem töltődik be. | Nézd meg a böngészőkonzolban a JavaScript-hibákat, aztán nézd át a szkriptoptimalizálás kivételeit. |

Ezekkel a kivételekkel az áruházad megtartja a gyorsítótárazás sebességét, miközben minden vásárló a saját kosarát látja a pénztárnál.
