# WooCommerce-átvitel WP-CLI-vel

> A WooCommerce áruház átvitele parancssorból: kapcsolók, a szakaszok sorrendje, hibanapló, folytatás és memóriabeállítások.

Több ezer rendelésű boltnál a WP-CLI gyorsabb az admin varázslónál, és teljesen kiküszöböli a böngésző-időtúllépést. Ugyanaz a motor hajtja mindkét felületet, ezért az eredmény azonos, csak a kezelőfelület más.

## Mikor használd a WP-CLI-t

- A boltodban néhány ezernél több rendelés vagy termék van.
- Megosztott tárhelyen futsz szigorú PHP-időtúllépéssel.
- Az átvitelt egy telepítési folyamat részeként szkriptelni szeretnéd.
- A böngésző nagy adatmennyiségnél futás közben folyton megszakad.
- Tesztkörnyezetben SSH-n át dolgozol, admin felület nélkül.

Kis és közepes boltnál, vagy nem műszaki felhasználónak a varázsló a jobb választás. A varázsló áttekintő képernyőjén egy **WP-CLI (nagy boltokhoz ajánlott)** panel mutatja a leggyakoribb parancsokat.

## Az elsődleges parancs

Minden WooCommerce-átviteli munka egyetlen, névtérrel ellátott parancson megy át, szakaszonként külön kapcsolóval:

```bash
wp fluent_cart_migrator migrate_from_woo [kapcsoló]
```

> **Külön parancs az EDD-től.** A WooCommerce a `migrate_from_woo` parancsot használja, az Easy Digital Downloads a `migrate_from_edd`-et. Független parancsok, független állapottal, így az a bolt, amelyik korábban EDD-átvitelt futtatott, WooCommerce-ből is átvihet adatot anélkül, hogy a kettő zavarná egymást.

### Kapcsolók

| Kapcsoló | Mit csinál |
|---|---|
| `--all` | A teljes folyamat sorban: termékek, adókulcsok, kuponok, rendelések, hiányzó vásárlók, újraszámolás. A kész szakaszokat kihagyja, a megszakadtakat folytatja. |
| `--products` | A WooCommerce-katalógus átvitele FluentCart-termékekké. Szinkronizálja a kategóriákat, tulajdonságokat, letölthető fájlokat, az áruház beállításait (csak az első oldalon), és az utolsó oldalon bekötik a csomagkapcsolatokat. |
| `--tax_rates` | A WooCommerce adókonfigurációjának átvitele és FluentCart-adókulcsok létrehozása. Automatikusan kimarad, ha a WooCommerce-ben az adó ki van kapcsolva. |
| `--coupons` | A WooCommerce-kuponok átvitele FluentCart-kuponokká, az áthelyezett termék- és kategóriakorlátozásokkal. |
| `--payments` | Rendelések, tranzakciók, visszatérítések, vásárlók és előfizetések átvitele. 1000 rendelésenkénti oldalakban dolgozik, az utolsó oldalt elmenti a folytatáshoz. |
| `--missing-customers` | FluentCart-vásárlókat hoz létre azoknak a regisztrált `customer` / `subscriber` fiókoknak, amelyek sosem adtak le rendelést. |
| `--recount` | Az összesítők újraszámolása az átvitel után: kuponfelhasználás, vásárlói élettartam-érték és vásárlásszámok, árván maradt megújító tranzakciók, előfizetések számlázásszámai. |
| `--stats` | Az átvitel előtti statisztikák a WooCommerce-boltról. Adatot nem visz át. |
| `--log` | A sikertelen rendelések naplójának megjelenítése. |
| `--reset` | Az átvitt adatok és az átviteli állapot törlése. [Fejlesztői mód](https://hub.hellowp.io/hu/plugins/fluent-cart-pro/migracio-fejlesztoi-mod/) kell hozzá. |

## Gyakori munkafolyamatok

### Teljes átvitel egy paranccsal

```bash
wp fluent_cart_migrator migrate_from_woo --all
```

Minden szakaszt sorban lefuttat. A már kész szakaszokat kihagyja. Ha egy korábbi futás a termékeknél vagy a rendeléseknél szakadt meg, az utolsó befejezett oldaltól folytatja.

### Lépésről lépésre

Több ellenőrzésre van lehetőséged, ha minden szakaszt külön futtatsz. Hasznos, ha a szakaszok között meg szeretnéd nézni az eredményt, vagy egy szakasz különleges kezelést igényel.

```bash
wp fluent_cart_migrator migrate_from_woo --products
wp fluent_cart_migrator migrate_from_woo --tax_rates
wp fluent_cart_migrator migrate_from_woo --coupons
wp fluent_cart_migrator migrate_from_woo --payments
wp fluent_cart_migrator migrate_from_woo --missing-customers
wp fluent_cart_migrator migrate_from_woo --recount
```

A sorrend számít:

- **Először a termékek.** A rendelések és a kuponok a termékek szakasza által írt azonosítótérképen át oldják fel a termékhivatkozásokat.
- **Az adókulcsok a rendelések előtt.** A rendelések adósorai az adószakasz által létrehozott FluentCart-kulcsazonosítókra mutatnak.
- **A kuponok a rendelések előtt.** A rendeléseken alkalmazott kuponok kód alapján kapcsolódnak vissza az átvitt kuponrekordokhoz.
- **Utolsónak az újraszámolás.** Mindent újraépít abból, ami már átkerült.

### A forrásadat előnézete

Mielőtt bármit átvinnél, nézd meg, mi van a forrásáruházban:

```bash
wp fluent_cart_migrator migrate_from_woo --stats
```

Kiírja a termékek, rendelések, fizetett tranzakciók, vásárlók, előfizetések és kuponok számát, az összes regisztrált fizetésiátjáró-azonosítót, és az adataidban előforduló rendelésállapotokat. Semmit nem ír.

### Hibák megtekintése futás után

Ha egyes rendelések az átvitel során elbuktak (sérült rekord, hiányzó termékhivatkozás, hibás rendelési tétel), a Migrator rögzíti őket, és nem állítja le az egész futást. Megtekintésük:

```bash
wp fluent_cart_migrator migrate_from_woo --log
```

Minden bejegyzés mutatja a WooCommerce-rendelés azonosítóját és a hibaüzenetet. A hibákat maga a futás közben is figyelmeztetésként kiírja, így egy hosszú CLI-átvitel menet közben jelzi a problémákat.

### Visszaállítás és újrakezdés (csak tesztkörnyezetben)

```bash
wp fluent_cart_migrator migrate_from_woo --reset
```

Megerősítést kér, majd törli az összes átvitt FluentCart-adatot és a WooCommerce-átvitel állapotát. A [fejlesztői módhoz](https://hub.hellowp.io/hu/plugins/fluent-cart-pro/migracio-fejlesztoi-mod/) kötött, és éles oldalon soha nem szabad futtatni.

## Folytatási viselkedés

A CLI teljesen folytatható. Az állapot minden elkészült oldal és lépés után a `__fluent_cart_woocommerce_migration_steps` beállításba kerül.

- **Szakaszszintű folytatás:** az `--all` újrafuttatása kihagyja a kész szakaszokat.
- **Oldalszintű folytatás a termékeknél:** az utolsó befejezett termékoldal el van mentve, az újrafuttatás a következőtől folytatja.
- **Oldalszintű folytatás a rendeléseknél:** ugyanez a mechanizmus, 1000 rendelésenkénti oldalakban.
- **Idempotens újrafuttatás:** a `--products` az azonosítótérkép alapján helyben frissíti a már átvitt termékeket, nem duplikálja őket. A `--coupons` kód alapján frissíti a meglévő kuponokat. A `--recount` mindig az aktuális adatokból számol újra, soha nem növel.

Ezért nyugodtan megszakíthatsz egy hosszú futást a `Ctrl+C` billentyűvel, és újraindíthatod: nem keletkezik duplikált adat, és nem marad ki rekord.

A Migrator a memóriakimerülés ellen is véd egy futáson belül: a kötegek között üríti a WordPress futásidejű objektum-gyorsítótárát és lekérdezésnaplóját, és megállítja a köteget, ha a folyamat eléri a PHP memóriakorlátjának nagyjából 70%-át. A következő hívás friss folyamattal folytatja.

## Memória- és időzítési tippek

Nagyon nagy boltoknál adj elég memóriát a PHP-nak:

```bash
wp --exec='ini_set("memory_limit","1G");' fluent_cart_migrator migrate_from_woo --all
```

Vagy ezzel egyenértékűen:

```bash
php -d memory_limit=1024M $(which wp) fluent_cart_migrator migrate_from_woo --all
```

Ha a tárhely szigorúan korlátozza a folyamatokat, az `--all` helyett futtasd külön a szakaszokat, hogy minden hívás saját memóriakörnyezetet kapjon.

## Amit a CLI nem tud a varázslóhoz képest

- Nem rajzolja ki a varázsló élő, lépésenkénti folyamatpaneljét, helyette oldalankénti haladássorokat ír ki.
- Nem szakítja meg és folytatja a szakaszt menet közben kérésre, csak az oldalak és szakaszok között.
- Nem jeleníti meg az átvitel utáni teendők panelt. Ehelyett dolgozd végig a teendőlistát: kösd újra a fizetési átjárókat, cseréld le a WooCommerce-rövidkódokat és blokkokat, nézd át az e-mail-értesítéseket, és az [előfizetések](https://hub.hellowp.io/hu/plugins/fluent-cart-pro/migracio-woocommerce-elofizetesek/) élesítés előtti tudnivalóit.

Minden másban a CLI funkcionálisan egyenértékű a varázslóval, valós terhelésnél pedig gyorsabb.
