# Szállítási hibák elhárítása

> A WooCommerce beépített szállítási módjainak hibaelhárítása: hiányzó vagy rossz díjak, zónák, szállítási osztályok, személyes átvétel, ingyenes szállítás, hibakereső mód.

Ez a fejezet a WooCommerce magjában lévő szállítási módok hibáit segít elhárítani: az **Átalánydíj**, az **Ingyenes szállítás** és a **Személyes átvétel** módokét. Élő szállítási díjat (valós idejű árajánlatot a fuvarozótól) és címkenyomtatást a beépített funkciók nem tudnak, ezekhez külön kiegészítő kell.

A szállítási gondok általában ezekbe a csoportokba esnek:

- hiányzó vagy hibás szállítási díjak,
- a pénztárban nem jelenik meg egy szállítási mód,
- váratlan szállítási költség,
- a szállítási zóna nem illeszkedik a vásárló címére,
- a szállítás adója nincs alkalmazva vagy hibás.

Tesztelj lehetőleg próbawebhelyen (staging). Jegyezd fel a tesztelt címet, a kosár tartalmát és a várt szállítási módot, hogy minden módosítás után pontosan megismételhesd a tesztet. Előbb frissítsd a WordPresst, a WooCommerce-et, a témát és a kiegészítőket a **Vezérlőpult → Frissítések** oldalon, mert a frissítések sok ismert hibát javítanak.

## Alapvető ellenőrzések

### Szállítási zónák

1. Nyisd meg a **WooCommerce → Beállítások → Szállítás → Szállítási zónák** oldalt.
2. Ellenőrizd, hogy a vásárló címe illeszkedik valamelyik zónára.
3. Győződj meg róla, hogy minden érintett zónában van legalább egy bekapcsolt szállítási mód.

![A Szállítás beállításainál a Szállítási zónák oldal. A mintaboltban még nincs zóna, ezért a bevezető szöveg látszik.](./kepek/hibaelharitas-szallitasi-zonak.webp)

*A Szállítás beállításainál a Szállítási zónák oldal. A mintaboltban még nincs zóna, ezért a bevezető szöveg látszik.* (https://minta-bolt.hu/wp-admin/admin.php?page=wc-settings&tab=shipping)

A képen a zónák listája látszik: itt kell zónát felvenned, ha még nincs, és a sorrendet is itt húzással változtathatod.

### Szállítási módok

1. Minden zónában ellenőrizd, hogy a megfelelő módok (például átalánydíj, ingyenes szállítás, személyes átvétel) be vannak kapcsolva.
2. Nézd át a módokra beállított feltételeket.
3. Az ingyenes szállításnál ellenőrizd a minimális rendelési összeget és a kuponbeállításokat.

### A termék szállítási beállításai

1. A termékszerkesztőben a **Termékadatok** panelen nyisd meg a szállítási beállításokat.
2. Ellenőrizd, hogy a termékhez van szállítási osztály rendelve, ha a beállításaid ezt igénylik.
3. Ellenőrizd, hogy a termék nincs **Virtuális** típusra állítva, mert a nem fizikai termékre nincs szállítás.

## A szállítási hibakereső mód

A WooCommerce beépített hibakereső módja az átalánydíjra, az ingyenes szállításra és a személyes átvételre működik. Megkerüli a szállítási díjak gyorsítótárát, és a klasszikus kosár oldalon értesítést ír ki az illeszkedő szállítási zónáról. A Kosár és a Pénztár blokkban, AJAX-frissítéskor és a klasszikus pénztár oldalon az értesítésre ne számíts.

1. Nyisd meg a **WooCommerce → Beállítások → Szállítás → Szállítási beállítások** oldalt.
2. Jelöld be a **Hibakereső mód engedélyezése** jelölőnégyzetet.
3. Kattints a **Módosítások mentése** gombra.
4. Tölts be újra a klasszikus kosár oldalt egy szállítandó termékkel és a tesztcímmel. Nézd meg az illeszkedő zóna értesítését, majd ellenőrizd a pénztárban az elérhető módokat.

![A Szállítási beállítások oldal a Kalkulációk, a Szállítási cél és a Hibakereső mód beállításaival.](./kepek/hibaelharitas-szallitasi-beallitasok.webp)

*A Szállítási beállítások oldal a Kalkulációk, a Szállítási cél és a Hibakereső mód beállításaival.* (https://minta-bolt.hu/wp-admin/admin.php?page=wc-settings&tab=shipping&section=options)

A képen a **Hibakereső mód** jelölőnégyzet látszik alul.

A hibakereső mód a vásárlóknak is látszik a webhelyen, ezért a tesztelés után kapcsold ki.

Ha saját oldalszerkesztővel vagy külső pénztárbővítménnyel állítottad be a kosarat vagy a pénztárat, hasonlítsd össze a hibás oldalt a WooCommerce alapértelmezett Kosár és Pénztár oldalával (lásd [A WooCommerce alapoldalai](https://hub.hellowp.io/hu/manuals/woocommerce/hibaelharitas/hibaelharitas-woocommerce-oldalak/)). Ha az alapoldalakon megjelennek a várt díjak, az egyedi oldalszerkesztőt vagy pénztárbővítményt vizsgáld.

## Haladó hibaelhárítási lépések

- **JavaScript-hibák.** Ha a szállítási lehetőségek nem frissülnek a cím vagy a kosár módosításakor, gyűjtsd össze a böngésző hibaüzeneteit a [JavaScript-hibák elhárítása](https://hub.hellowp.io/hu/manuals/woocommerce/hibaelharitas/hibaelharitas-javascript-hibak/) fejezet szerint. Add át a teljes hibaüzenetet és a kiváltó lépéseket a bővítmény vagy a téma fejlesztőjének.
- **WooCommerce naplók.** A **WooCommerce → Állapot → Naplók** oldal a PHP végzetes hibákat is rögzíti. Ezt nézd meg először, mielőtt a szerveren keresnéd a PHP-naplót ([PHP-hibanaplók megkeresése](https://hub.hellowp.io/hu/manuals/woocommerce/hibaelharitas/hibaelharitas-php-hibanaplok/)).
- **Sablonfelülírások.** A **WooCommerce → Állapot → Rendszerállapot** oldalon a **Sablonok** résznél nézd meg az elavult témafelülírásokat. Próbáld meg próbawebhelyen ugyanazt a tesztet egy alapértelmezett témával. Ha a gond megszűnik, kérd meg a téma fejlesztőjét a felülírások javítására. Tesztelésként ne törölj és ne nevezz át témafájlokat.
- **Ütközésteszt.** Ha ütközést gyanítasz, kövesd az [ütközések tesztelése](https://hub.hellowp.io/hu/manuals/woocommerce/hibaelharitas/hibaelharitas-utkozesek-tesztelese/) fejezetet.
- **Blueprint.** A WooCommerce 9.9-től elérhető a Blueprint: a bolt beállításait (köztük a szállításit) exportálhatod és importálhatod a **WooCommerce → Beállítások → Haladó → Blueprint** oldalon. Ha a fenti lépések nem segítettek, exportáld a beállításokat, állíts fel próbawebhelyet alapértelmezett témával (például Twenty Twenty-Five) és aktív WooCommerce-szel, majd importáld oda a beállításokat. Ha ott nincs hiba, valószínűleg ütközés van az éles webhelyen, nem a WooCommerce beállításaival van a gond.

## Gyakori hibák

Ha az alábbi hibák egyikénél nem segít a megoldás, előbb menj végig az alapvető és a haladó lépéseken.

### „Nincsenek szállítási lehetőségek ehhez a címhez”

A vásárló ezt az üzenetet látja: „No shipping options are available for this address. Please verify the address is correct or try a different address.” A hiba általában a szállítási zónák beállításából ered, de bővítmény- vagy témaütközés is okozhatja (például egy külső bővítmény egyes országokra vagy régiókra korlátozza a szállítást).

1. **Zónák:** ellenőrizd, hogy a vásárló szállítási címe illeszkedik-e egy zónára.
2. **Módok:** az illeszkedő zónában legyen legalább egy bekapcsolt szállítási mód.
3. **Irányítószám-tartományok:** keress átfedő vagy hiányos tartományokat, különösen helyettesítő karakterek (*) és szóközök esetén.
4. **Termék:** ne legyen **Virtuális**, és legyen megadva a súly, a méret és a szállítási osztály, ha a szállítási módod feltételei ezt használják.
5. **Hibakereső mód:** kapcsold be a fenti lépésekkel, és nézd meg az illeszkedő zónát.

### Szállítás adója

Ha adó kerül a szállításra, de nem kellene, nyisd meg a **WooCommerce → Beállítások → Szállítás → Szállítási zónák** oldalon a szállítási módot szerkesztésre, és állítsd az **Adó állapota** értéket **Nincs**-re. A szállítás adója a kosár tételei vagy az alapértelmezett adókulcs alapján számolódik. Ha viszont a szállításra nem számolódik adó, de kellene, az adóbeállításokat nézd át.

### Az átalánydíj váratlanul viselkedik

Ellenőrizd a számítási beállításokat:

- hogy a díj tételenként, osztályonként vagy rendelésenként érvényes-e,
- a `[qty]` megszorozza a költséget a darabszámmal,
- a `[fee]` százalékos díjat ad meg.

A szállítási osztályoknál:

- legyen megadva az osztály költsége a szállítási mód beállításaiban,
- a termék a megfelelő osztályba tartozzon,
- ha osztályköltséget és alapköltséget is használsz, a számítás típusa megfelelő legyen,
- ha a viselkedés következetlen, tesztelj úgy, hogy csak egy termék van a kosárban.

### Az ingyenes szállítás mellett más módok is látszanak

Alapból az ingyenes szállítás a többi lehetőség mellett jelenik meg. A WooCommerce 9.9-től a **WooCommerce → Beállítások → Szállítás → Szállítási beállítások** oldalon bekapcsolhatod az **Elrejtés a szállítási díjakat, amikor ingyenes szállítás érhető el** beállítást. Mentés után az ingyenes szállításra jogosító kosárnál a többi szállítási mód eltűnik, a **Személyes átvétel** viszont megmarad. Régebbi WooCommerce-nél más módszer kell, például kódrészlet.

### Hiányzik az ingyenes szállítás

Ha a feltételek teljesülnek, de nem jelenik meg:

- **Zónák:** a vásárló címe illeszkedjen egy zónára, amelyik tartalmazza a megfelelő régiókat.
- **Mód beállítása:** az ingyenes szállítás legyen hozzáadva a zónához, és a **Az ingyenes szállítás feltétele** legördülőben a kívánt feltétel legyen kiválasztva.
- **Kosár feltételei:** a minimális összeg, a kuponkövetelmények, és az, hogy a kuponkedvezmény beleszámít-e a minimumba. Az alap ingyenes szállítás nem zár ki termékeket szállítási osztály alapján: ha erre kiegészítőt használsz, annak szabályait külön nézd meg.

### A pénztárban mutatott díj nem egyezik a beállítottal

1. A vásárló a teljes szállítási címet megadta (ország, megye, város, irányítószám).
2. A bolt címe meg van adva a **WooCommerce → Beállítások → Általános** oldalon.
3. A hibakereső móddal nézd meg az illeszkedő zónát.
4. A zónák között ne legyen átfedő irányítószám-tartomány, és ne legyen sorrendi figyelmeztetés.
5. Az országokat és megyéket a zóna régiókiválasztójából add meg. Ne feltételezd, hogy minden államkód két betűs.
6. Ha egy bővítmény dinamikusan módosítja a szállítást (például feltételes szállítási és fizetési szabályok), kapcsold ki, és nézd meg, megmarad-e a viselkedés.

### A szállítási díj nem frissül a kosárban vagy a pénztárban

1. **Zónák:** a vásárló címe illeszkedjen egy zónára, amelyben van bekapcsolt szállítási mód.
2. **Gyorsítótár:** ürítsd a böngésző és a webhely gyorsítótárát. Gyorsítótárazó bővítménynél vagy tárhelyi gyorsítótárnál a **Kosár**, a **Pénztár** és a **Fiókom** oldalt zárd ki a gyorsítótárazásból. Utána tölts be újra, és próbálj ki egy teszt rendelést.
3. **Kosár frissítése:** a klasszikus kosár oldalon módosítsd a mennyiségeket, majd kattints a kosár frissítésére szolgáló gombra. A Kosár blokk magától frissül. Ha a díjak így sem frissülnek, ismételd meg az ütközéstesztet, és gyűjtsd össze a böngészőhibákat.

### A szállítási osztály költsége nem érvényesül

Ez akkor fordul elő, ha az osztályok és a díjaik üresek vagy rosszul vannak beállítva.

1. **A termék osztálya:** a **Termékadatok** panel szállítási beállításainál a megfelelő osztály legyen kiválasztva és mentve. Változatos termékeknél minden variációt külön nézz meg.
2. **A mód osztályköltségei:** a zónában nyisd meg az **Átalánydíj** módot (vagy más érintettet), és add meg az osztály költségét a szállítási osztályok költségei között.
3. **Számítás típusa:** a **Osztályonként**: az egyes szállítási osztályok díját külön számolja, és összeadja (új átalánydíjnál ez az alapérték). A **Rendelésenként**: csak a legdrágább osztály díját számolja. Mindkét esetben az alapköltség is hozzáadódik.

### A szállítási díj mindig 0 Ft

Ha az átalánydíj be van kapcsolva, de a költség nulla:

1. Adj meg legalább alapköltséget vagy szállítási osztály költségeket.
2. A szállítási osztály számítási típusát állítsd **Osztályonként** vagy **Rendelésenként** értékre.

Ha a szállítási díj csak a cím megadása után számolódik, nézd meg a **Szállítási beállítások → Kalkulációk** résznél, hogy a **Szállítási díjak elrejtése a cím beírásáig** nincs-e bejelölve. Geolokációnál ellenőrizd, hogy a **WooCommerce → Beállítások → Integráció → MaxMind Geolocation** alatt megvan-e a MaxMind licenckulcs.

### Kétszeres átvételi lehetőség

Ha a pénztárban kétszer jelenik meg a személyes átvétel, valószínűleg a régi **Személyes átvétel** módot hozzáadtad egy zónához, mielőtt a blokkalapú személyes átvételt bekapcsoltad a **WooCommerce → Beállítások → Szállítás → Személyes átvétel** oldalon (ezt csak a Pénztár blokk használatakor látod). Így mindkét mód aktív. Ne használd egyszerre a kettőt, mert összezavarja a vásárlókat: a személyes átvétel oldalon figyelmeztetés is megjelenik. Blokkos pénztárnál töröld a régi módot a zónákból. Az új, blokkalapú személyes átvételt nem kell zónához adni, azt külön, a **Személyes átvétel** oldalon kell kezelni.

### A zónák sorrendje

A WooCommerce az első olyan zónát választja, amelyik illeszkedik a vásárló címére. Ha rossz módok jelennek meg, ellenőrizd a sorrendet, a módokat és azok feltételeit. A legjobb gyakorlat: a zónákat a legszűkebbtől a legszélesebbig rendezd (város, megye, ország).

A WooCommerce 11.1-től figyelmeztet, ha egy zónát soha nem lehet elérni: a **WooCommerce → Beállítások → Szállítás** oldalon a zónák listájában a kihagyott zóna mellett üzenet látszik, hogy az előtte lévő zóna ugyanazt a régiót fedi. A figyelmeztetés mindkét zónanév-említése a korábbi zónát jelöli. A megoldás:

1. Jegyezd fel az üzenetben szereplő zóna nevét: az illeszkedik először.
2. Húzd a jelölt zónát a megnevezett zóna fölé a sor elején lévő fogantyúval.
3. Kattints a **Módosítások mentése** gombra.
4. Próbawebhelyen tegyél egy fizikai terméket a kosárba, add meg a címet az átfedő régióban, és ellenőrizd a várt módot és díjat.

Ha a figyelmeztetés eltűnt, a zóna a fedő zóna fölött van. Ha több zóna fedi egymást, ismételd az ellenőrzést, amíg a lista a legszűkebbtől a legszélesebbig tart.

Fontos: a figyelmeztetés hiánya nem jelenti azt, hogy nincs átfedés. A WooCommerce csak a földrészt, az országot és a megyét hasonlítja össze. Nem figyelmeztet, ha a korábbi zóna irányítószámot használ, vagy ha valamelyik zóna olyan helytípust használ, amit az ellenőrzés nem fed. Ha a vásárló mégis rossz díjat kap, a sorrendet magad ellenőrizd.

### A szállítási mód neve

A zónához adott szállítási mód címe jelenik meg a vásárlónak a pénztárban. A címet a zónán belül a mód szerkesztésével módosíthatod.

### Egyedi kosár- és pénztároldal

A WooCommerce-funkciókkal való kompatibilitás érdekében használd az alapértelmezett oldalszerkesztőt, valamint a WooCommerce kosár és pénztár rövidkódjait vagy blokkjait. Ha harmadik féltől származó témát, oldalszerkesztőt vagy bővítményt használsz, a szállítási hiba keresésekor válts át az alapértelmezett WooCommerce-beállításra, így kiderül, az egyedi megoldás okozza-e a gondot. Azt is nézd meg, a klasszikus pénztárat vagy a Pénztár blokkot használod-e: a kiegészítők kompatibilitása és a lépések eltérhetnek. Teszteld azzal a pénztártípussal, amelyet a vásárlóid is használnak.

### Virtuális termékek

A virtuális termékhez nem kell szállítás. Ha a kosárban csak virtuális termék van, nem jelenik meg szállítási lehetőség. Vegyes kosárnál a fizikai termékekhez továbbra is kell szállítás. A termék virtuálissá tételéhez szerkeszd a terméket, és jelöld be a **Virtuális** jelölőnégyzetet.

### Súly és méret

Az átalánydíj, az ingyenes szállítás és a személyes átvétel nem számol a termék súlyából vagy méretéből. Nézd meg az illeszkedő zónát és a mód feltételeit. A fuvarozói díjakat számoló kiegészítőknél szükség lehet a súlyra és a méretre.

### A „Világ többi része” zóna

Ha a vásárló címe egyetlen megadott zónára sem illeszkedik, a WooCommerce a **Világ többi része** zónát alkalmazza. Ezt nem mozgathatod, nem nevezheted át és nem törölheted.

### Irányítószám alapú zónák

Egy helyi zónába felvehetsz irányítószámokat soronként egyet: konkrét irányítószámokat, számtartományokat (például `1000…1999`) és helyettesítő karakteres (`*`) mintákat. A `*` minden olyan irányítószámot lefed, amelynek eleje megegyezik, ezért a nem csak számokat tartalmazó irányítószámoknál ez ajánlott. Példák:

- `902*` lefedi a 90210-et és a 90288-1234-et is,
- `CB23*` lefedi a CB23 1EX-et,
- `CB2*` lefedi a CB2 3AA-t és a CB23 1EX-et is.

Helyettesítő karakter számtartományban (például `902*…990*`) nem támogatott. Egyes esetekben, például Észak-Írországnál, külön kiegészítővel választhatod le a régiót az országról.

## A beépített szállítási módok

- **Átalánydíj:** egységes szállítási díj tételenként, szállítási osztályonként vagy rendelésenként.
- **Ingyenes szállítás:** ingyenes opció, ha a rendelés teljesít egy feltételt (például minimális összeg), vagy ha egy földrajzi területen mindenkinek ingyenes.
- **Személyes átvétel (régi):** a vásárló a boltból viszi el a rendelést. Címet kell megadnia, és olyan zónába kell esnie, amelyben ez a mód szerepel. Az adót a bolt helye szerint számolja.
- **Blokkos személyes átvétel:** a Pénztár blokkban egy vagy több átvételi hely közül lehet választani. A vásárlónak nem kell szállítási címet megadnia, és az adót a kiválasztott átvételi hely alapján számolja.

## Címkenyomtatás és élő díjak

A beépített szállítás nem tud élő díjat mutatni és címkét nyomtatni. Erre kiegészítők valók:

- szállítási címkék nyomtatása a vezérlőpultból (fuvarozói kiegészítők, külső fulfillment-platformok, mint a ShipStation vagy a Stamps.com),
- élő fuvarozói díjak a pénztárban (például UPS, USPS, FedEx, Royal Mail kiegészítők). Egyesek fuvarozói API-ból kérik a díjat, mások a közzétett árlistából számolnak.

Élő díjak hibakereséséhez:

1. Kapcsold be a kiegészítő saját naplózását.
2. A termékeknél legyen teljes súly- és méretadat.
3. Ellenőrizd az API-hitelesítő adatokat: a hibás adat gyakori ok.
4. Ellenőrizd a kiindulási irányítószámot a kiegészítő beállításaiban.

Összetettebb szabályokhoz létezik feltételes szállítási és fizetési szabályokat adó, táblázatos díjas, termékenkénti szállítási díjat adó és távolságalapú díjat számoló kiegészítő is, valamint szállításkövető kiegészítő, amellyel a vásárló az e-mailből, a rendeléskövető oldalról és a fiókjából követheti a csomagot.

## Segítségkérés

Ha nem sikerül megoldani, gyűjtsd össze ezeket, mielőtt segítséget kérsz:

- a hiba leírása,
- pontos lépések a hiba előidézéséhez (a tesztelt szállítási címmel),
- a már elvégzett hibaelhárítási lépések,
- a böngésző konzoljának vagy a PHP naplóinak hibaüzenetei,
- a WooCommerce Rendszerállapot jelentése,
- a bolt beállításainak Blueprint exportja vagy próbawebhely.

Képernyőképeket is küldj a kosár és a pénztár oldalról, a szállítási beállításokról (zónák és módok), valamint az érintett termék szállítási beállításairól. Szállítási kiegészítőnél a kiegészítő fejlesztőjét kell keresni. A magbeli WooCommerce támogatása a WordPress közösségi fórumain érhető el.
