Tovább a tartalomhoz

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.

  • 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.

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

Terminál
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ó 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 kell hozzá.
Terminál
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.

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.

Terminál
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.

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

Terminál
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.

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:

Terminál
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)

Szekció neve “Visszaállítás és újrakezdés (csak tesztkörnyezetben)”
Terminál
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 kötött, és éles oldalon soha nem szabad futtatni.

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.

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

Terminál
wp --exec='ini_set("memory_limit","1G");' fluent_cart_migrator migrate_from_woo --all

Vagy ezzel egyenértékűen:

Terminál
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

Szekció neve “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 é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.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások