# Hibaelhárítás

> Gyakori hibák és megoldásuk: aktiválás, letöltés, frissítés, szerverbeállítások és ajánlott gyakorlatok.

## Általános lépések

1. Kapcsold be a naplókat az **API Manager → Konfiguráció → Hibakeresés** fülön ([Beállítások](https://hub.hellowp.io/hu/plugins/woocommerce-api-manager/beallitasok/)): a szerverkérések, -hibák és -válaszok naplója. A napló a **WooCommerce → Állapot → Naplók** oldalon is megtalálható. Távoli teszteléshez a Postman ajánlott.
2. Frissítsd a WordPresst, a WooCommerce-et, a sablonokat és a bővítményeket, a sablonfelülírásokat is. Az elavult szoftver háttérhibákat okozhat, ráadásul biztonsági kockázat. Ellenőrizd a PHP és a MySQL minimális verzióját is.
3. Kapcsold ki az összes bővítményt a WooCommerce, az API Manager és (ha van) a WooCommerce Subscriptions kivételével, és nézd meg, megoldódik-e a gond. Az is lehet, hogy a szervernek nincs elég memóriája.
4. Nézd meg a **WooCommerce → Állapot** oldalon a javaslatokat.

## Szerverbeállítások

Saját szerveren érdemes ellenőrizni:

- `max_execution_time` a `php.ini` fájlban (legalább 30, de ne túl nagy):

  ```text
  max_execution_time = 30
  ```

- `max_allowed_packet` a MySQL-ben (Linuxon az `/etc/my.cnf` fájlban):

  ```text
  max_allowed_packet = 128M
  ```

Ha egy adatfrissítés nem fejeződik be, lehet, hogy kevés a RAM vagy a processzor. A bővítmény frissítője figyeli a memóriahasználatot, és 90% fölött szünetel, majd onnan folytatja, ahol abbahagyta. Lassú szerveren és nagy adatbázisnál ez sokáig tart.

500-as belső szerverhiba vagy kapcsolati időtúllépés esetén vagy elfogyott a memória, vagy egy bővítmény vagy sablon végzetes hibát dob. A **WooCommerce → Állapot → Naplók** oldalon keresd a `fatal-errors` naplókat, és a `wc_am_db_updates` naplót, amely az adatfrissítés állapotát mutatja. Ha ez sem segít, nézd meg a PHP és a webszerver hibanaplóját.

### Tipikus Apache-hibák

| Naplóüzenet | Teendő |
|---|---|
| `AH01067: Failed to read FastCGI header` | Növeld a `max_execution_time` értékét legalább 30-ra. Apache proxy esetén a proxy időtúllépése legyen nagyobb a `max_execution_time`-nál. |
| `The timeout specified has expired: AH01075: Error dispatching request` | Az Apache konfigurációjában állítsd a `ProxyTimeout` értékét (például 1800-ra), amely nagyobb kell legyen a `max_execution_time`-nál. |
| `AH01071: Got error 'PHP message: PHP Warning: Error while sending QUERY packet` | Az adatbázis nem bír el ennyi kapcsolatot. Megosztott tárhelyen válts erősebb csomagra, saját szerveren növeld a `max_allowed_packet` értékét (128 MB-nál kisebb is lehet). |

## Aktiválási és licencproblémák

### „No API resources exist”

Ez az üzenet azt jelenti, hogy a vásárláshoz nem található licencelési erőforrás.

- Nézd meg a rendelést: a **Licencelés** dobozban kell lennie rekordnak ([Rendelések és licencek](https://hub.hellowp.io/hu/plugins/woocommerce-api-manager/rendelesek-licencek/)). Licencelési erőforrás csak **Teljesítve** vagy **Feldolgozás alatt** rendelésnél van.
- A rekordot a licenckulcs és a termékazonosító alapján keresi a rendszer: ellenőrizd mindkettőt a rendelésen vagy a vevő **Fiókom → Licenckulcsok** oldalán.
- Ellenőrizd a terméken, hogy be van-e jelölve a **Licencelés** négyzet. Ha a vásárlások után jelölöd be, háttérfolyamat hozza létre az erőforrásokat a korábbi, **Teljesítve** vagy **Feldolgozás alatt** rendelésekhez.
- Előfizetéses termék esetén lejárt előfizetésnél a licenc nem látszik a rendelésen, nem érhető el az API-n, és nem jelenik meg a vevő fiókjában.
- Időkorlátos terméknél a **Hozzáférés időtartama** lejárta után ugyanez igaz.

### Kliens nem küld numerikus termékazonosítót

A régi (2.0 előtti) rendszer alfanumerikus „Software Title”-lel azonosította a terméket. Az újabb verziók a termék pontos, numerikus azonosítóját használják. A régi név elfogadása korlátozott, és előfordulhat, hogy a frissítések elromlanak. Minden kliensnek a numerikus termékazonosítót kell küldenie. Ha nehézkes beleégetni a kódba, adj egy mezőt, ahol a vevő beírja. A vevő az azonosítót a **Fiókom → Licenckulcsok → Termék ID** oszlopban találja, és minden teljesített rendelésről szóló e-mail is tartalmazza.

### Régi (2.0 előtti) licenckulcsok

A 2.0 előtti kulcsok megmaradtak, de átkerültek a társított API-kulcsok táblájába. Aktiváláshoz, deaktiváláshoz és állapotlekérdezéshez továbbra is működnek, de frissítéshez a régi PHP-könyvtárral nem minden esetben. Ha a WordPress-bővítmények és -sablonok frissítése nem működik, frissítsd a PHP-könyvtárat ([PHP-könyvtár](https://hub.hellowp.io/hu/plugins/woocommerce-api-manager/php-konyvtar/)). A régi kulcsok nem jelennek meg a rendelésen és a **Fiókom** oldalon, csak a felhasználói kulcs (és ha beállítottad, a termékkulcsok). Ha nem a PHP-könyvtárat használod, hanem saját kóddal hívod az API-t, ellenőrizd, hogy a kéréseid tartalmazzák az összes kötelező kulcsot és értéket ([API](https://hub.hellowp.io/hu/plugins/woocommerce-api-manager/api/)).

## Letöltési hibák

A termék első **Letölthető fájl** URL-je szolgál a frissítésekhez és a **Fiókom → Licencelt letöltések** oldalhoz. A bővítmény 2.0.7 óta nem használja a WooCommerce letöltési engedélyek tábláját a helyi letöltésekhez.

Ha a helyi szerveren **No file defined** (nincs megadva fájl) hibát kapsz:

1. Ellenőrizd, hogy a terméknek van letölthető fájl URL-je, és ez az első a listában.
2. Ha a hiba megmarad, töröld a letölthető fájlokat, frissítsd a terméket, add vissza őket, és frissítsd újra.
3. Hibás webszerver, tűzfal vagy fájlblokkoló szabály is okozhat letöltési hibát. Ha el akarod kerülni a helyi szerver gondjait, szolgáld ki a letöltéseket Amazon S3-ról.

## Ajánlott gyakorlatok

- Használj támogatott PHP-verziót, és frissítsd, mielőtt eléri az élettartama végét.
- Használj HTTPS-t: a bolt biztonságos kapcsolaton kell fusson.
- Add meg a WordPress biztonsági kulcsait: a titkosításhoz az `AUTH_KEY` és az `NONCE_SALT` kell a `wp-config.php` fájlból.
- Éles oldalon kapcsold ki a hibakeresést: `define( 'WP_DEBUG', false );`. A hibakeresési kimenet elronthatja az API-válaszokat.
- Ne gyorsítótárazd a lekérdezési karakterláncot: a kezdőoldal URL-jének gyorsítótárazása elronthatja az API-kéréseket. A legtöbb gyorsítótár-bővítmény ezt kezeli, de ellenőrizd, különösen Cloudflare esetén.
- Ellenőrizd a tűzfalat: egyes tűzfalak blokkolják a lekérdezési karakterláncot.
- Soha ne töröld a licencelt termékeket: a termék azonosítója kell az aktiváláshoz, a törlés tönkreteszi a kliensek aktiválásait.
- Ha duplikáltál egy terméket, ellenőrizd, hogy az új példány saját licencbeállításokat kapott.
- Ha az áruházban vendégként vásárlás is engedélyezett, a licencelt termékekhez a pénztár fiókot kér ([Beállítások](https://hub.hellowp.io/hu/plugins/woocommerce-api-manager/beallitasok/)).

## Támogatás

A fejlesztő a WooCommerce L-1 támogatási szabályát követi: a legfrissebb és az azt megelőző verziót támogatja. Támogatáshoz használd a WordPress, a WooCommerce, a WooCommerce Subscriptions (ha használod) és az API Manager legújabb vagy utolsó előtti verzióját. A támogatás a licencellenőrzésre, az aktiválásokra és az API működésére terjed ki. Külső szoftver (mobilalkalmazás, saját SaaS) fejlesztésében alapvető útmutatást adnak, a teljes megvalósítás és hibakeresés nem tartozik bele.
