# Termékek importálása és exportálása CSV-vel

> Termékek tömeges feltöltése, frissítése és kimentése a beépített CSV-eszközzel: a fájl felépítése, az import és az export lépései, a hibaelhárítás és az oszlopok táblázata.

A WooCommerce beépített CSV-eszközével sok terméket tölthetsz fel egyszerre, módosíthatod a meglévőket, vagy kimentheted a termékeidet egy másik boltba. Az **Importálás** és az **Exportálás** gomb a **Termékek → Minden termék** oldalon, az **Új termék hozzáadása** gomb mellett van.

![A Termékek lista tetején az Új termék hozzáadása, az Importálás és az Exportálás gomb](./kepek/termekek-rendelesek-csv-lista.webp)

*A Termékek lista tetején az Új termék hozzáadása, az Importálás és az Exportálás gomb* (https://minta-bolt.hu/wp-admin/edit.php?post_type=product)

A gombok a lista címe mellett találhatók; az Exportálás egy kijelölt termékcsoportra is működik (lásd lent).

## A CSV-fájl elkészítése

Az importhoz olyan CSV-fájl kell, amelyben a termékek adatai oszloponként vannak. Háromféleképpen juthatsz hozzá:

- Exportálsz egy CSV-t egy meglévő boltból. Az már a megfelelő felépítésű.
- Letöltöd a WooCommerce mintafájlját, és a példaértékeket a saját termékeidre cseréled, az oszlopneveket és a formátumot meghagyva.
- Magad készítesz egy fájlt a lent látható oszlopok szerint.

Szerkeszteni táblázatkezelővel érdemes (Google Táblázatok, LibreOffice Calc, Apache OpenOffice Calc, Numbers). Mentéskor mindig **UTF-8 kódolású CSV-t** válassz, és mentés után nézd át a fájlt, mert a táblázatkezelők néha átírják a formátumot vagy a karakterkódolást.

Általános szabályok:

- A kódolás UTF-8.
- A dátumokat a bolt helyi időzónájában add meg.
- Az igaz/hamis értékeknél `1` az igaz, `0` a hamis.
- Egy mezőben több értéket vesszővel választhatsz el. Ha egy érték maga tartalmaz vesszőt, tedd idézőjelek közé.
- Meglévő termékre azonosítóval hivatkozhatsz `id:` előtaggal (például `id:100`), cikkszámmal (SKU) előtag nélkül (például `SKU101`).
- A kategóriák hierarchiáját `>` jel jelzi, az egyes kategóriákat vessző választja el.
- A **Published** oszlop a termék állapotát adja meg: `1` közzétett, `0` privát, `-1` vázlat, `2` jóváhagyásra vár.
- Új termékhez nem adhatsz meg tetszőleges azonosítót: a WooCommerce a következő szabad azonosítót használja, akármi áll a fájlban.

### Vesszőt tartalmazó kategórianév

Mivel a vessző mezőelválasztó, a névben lévő vesszőt vissza kell perjellel védeni. Az `Emberek, Helyek, Városok` nevű egyetlen kategória így kerül a fájlba: `Emberek\, Helyek\, Városok`. A visszaperjelek jelzik, hogy a vessző a névhez tartozik.

### Képek az importban

- A képeknek előre fel kell tölteni őket a Médiatárba, vagy elérhetőnek kell lenniük az interneten.
- Külső képcímet is megadhatsz, ha a WooCommerce le tudja tölteni a képet: ilyenkor a Médiatárba kerül. Egyes tárhelyek letiltják a kéréseket, hitelesítést kérnek, vagy képet helyett oldalt adnak vissza. Ha egy kép nem töltődik le, töltsd fel a Médiatárba, vagy kérj a tárhelytől közvetlen képcímet.
- Ha a kép már a Médiatárban van, a fájlnevével is megadhatod.
- Az alap CSV-import a képek alternatív szövegét nem tudja beállítani vagy frissíteni.

## Termékek importálása

![A Termékek importálása oldal CSV-fájl feltöltésével és a Meglévő termékek frissítése jelölőnégyzettel](./kepek/termekek-rendelesek-csv-import.webp)

*A Termékek importálása oldal CSV-fájl feltöltésével és a Meglévő termékek frissítése jelölőnégyzettel* (https://minta-bolt.hu/wp-admin/edit.php?post_type=product&page=product_importer)

Az első lépés a fájl kiválasztása; a **Folytatás** gomb addig szürke, amíg nem választasz fájlt.

1. Nyisd meg a **Termékek → Minden termék** oldalt.
2. Kattints az **Importálás** gombra.
3. Válaszd ki a CSV- vagy TXT-fájlt. Ha a fájl már a szerveren van, a **Speciális beállítások megjelenítése** linkre kattintva megadhatod az elérési útját.
4. Kattints a **Folytatás** gombra.
5. Az **Oszlop összerendelés** oldalon a WooCommerce a felismert oszlopokat magától a megfelelő termékmezőhöz rendeli. A **Mezőre vetés** oszlop legördülő menüivel módosíthatod, és a **Ne importálja** választással kihagyhatsz egy oszlopot. Az ismeretlen oszlopokat alapból nem importálja.

![Az Oszlop összerendelés oldal: a CSV oszlopai és a hozzájuk rendelt termékmezők](./kepek/termekek-rendelesek-csv-osszerendeles.webp)

*Az Oszlop összerendelés oldal: a CSV oszlopai és a hozzájuk rendelt termékmezők* (https://minta-bolt.hu/wp-admin/edit.php?post_type=product&page=product_importer&step=mapping&file=%2Fvar%2Fwww%2Fhtml%2Fwp-content%2Fuploads%2Fwc-imports%2Fproduct-kezikonyv-woocommerce-termekek-rendelesek-minta-lkfturpysc.csv&delimiter=%2C&character_encoding&_wpnonce=4899564df9)

Minden CSV-oszlop mellett látod egy mintaértéket, a jobb oldali menüből pedig a hozzárendelt mezőt. A lap alján az **Importáló futtatása** gomb indítja az importot.

6. Kattints az **Importáló futtatása** gombra, és várd meg, amíg befejeződik. Közben ne frissítsd az oldalt, és ne lépj el róla.

## Meglévő termékek tömeges frissítése

Az importtal meglévő termékeket is frissíthetsz, például márkát adhatsz hozzá, adóosztályt cserélhetsz, akciót készíthetsz elő, vagy két bolt adatait szinkronizálhatod. A WooCommerce a sorokat az `ID` vagy az `SKU` alapján párosítja. Ha mindkettő üres, a leképezett `GTIN, UPC, EAN, or ISBN` oszlop (globális egyedi azonosító) alapján próbál párosítani. Ha ID-t vagy SKU-t megadtál, az az erősebb: ha nem talál vele terméket, nem próbálkozik a globális azonosítóval. A nem található ID-jű sort kihagyja.

1. Készíts CSV-t a fent leírt módon, minden frissítendő termék ID-jével vagy SKU-jával.
2. Nyisd meg a **Termékek → Minden termék** oldalt, és kattints az **Importálás** gombra.
3. Válaszd ki a fájlt.
4. Jelöld be a **Meglévő termékek frissítése** jelölőnégyzetet.
5. Kattints a **Folytatás** gombra, és nézd át az oszlop-összerendelést. Ha globális azonosítóval párosítasz, a CSV oszlopához válaszd a **GTIN, UPC, EAN vagy ISBN** mezőt (alapból **Ne importálja**).
6. Kattints az **Importáló futtatása** gombra, és várd meg a végét.

A frissítő import egy meglévő változatos termékhez új variációt is létre tud hozni: hagyd üresen a variáció `ID` oszlopát, a `Type` legyen `variation`, a `Parent` pedig a változatos termék SKU-ja vagy `id:123` alakú azonosítója. Az új variációnak egyedi SKU-ja legyen, vagy (ha az üres) használható GTIN-értéke. A megadott attribútumnevek és nem üres értékek egyezzenek a szülő termék attribútumaival. A kihagyott sorokat és az okukat az import jelentésében látod.

### Egyszerű termék átalakítása változatossá

Az importtal egy meglévő egyszerű terméket változatossá alakíthatsz. Mielőtt belekezdesz, készíts biztonsági mentést vagy próbáld ki egy teszt oldalon. Hozz létre egy egyszerű terméket SKU-val és árral, és exportáld a **Termékek → Minden termék** oldalról.

1. Nyisd meg az exportált CSV-t egy táblázatkezelőben.
2. Hagyd a termék sorát a helyén, és add hozzá minden variációnak egy új sort.
3. A szülő termék sorában a `Type` értékét írd át `simple`-ről `variable`-re.
4. Minden variáció sorában a `Type` legyen `variation`.
5. Minden variációnak legyen egyedi `SKU`-ja és `Name` értéke, az `ID` oszlopot hagyd üresen.
6. Add hozzá az attribútum-oszlopokat. Egy `Méret` nevű helyi attribútumhoz: `Attribute 1 name`, `Attribute 1 value(s)`, `Attribute 1 visible`, `Attribute 1 global`.
7. A szülő sorában az `Attribute 1 value(s)` mezőben az összes érték szerepeljen (például `S, M`), a variációk soraiban csak a saját értékük (`S` vagy `M`).
8. Az `Attribute 1 visible` legyen `1`. Az `Attribute 1 global` legyen `0` helyi attribútumnál, `1`, ha a boltban már beállított globális attribútumról van szó.
9. Minden variáció sorában a `Parent` a szülő SKU-ja vagy `id:123` alakú azonosítója legyen.

| Sor | `Type` | `SKU` | `Parent` | `Attribute 1 name` | `Attribute 1 value(s)` | `Attribute 1 visible` | `Attribute 1 global` |
|---|---|---|---|---|---|---|---|
| Szülő termék | `variable` | `polo` | | `Méret` | `S, M` | `1` | `0` |
| Variáció | `variation` | `polo-s` | `polo` | `Méret` | `S` | `1` | `0` |
| Variáció | `variation` | `polo-m` | `polo` | `Méret` | `M` | `1` | `0` |

Mentsd a fájlt új CSV-ként. Ha a szülő termék sora a variációk sorai előtt áll, egyetlen importtal is megy: jelöld be a **Meglévő termékek frissítése** jelölőnégyzetet, rendeld hozzá az `SKU` oszlopot, és importáld a fájlt. Ha nem tudod garantálni a sorrendet, két importot futtass:

1. Az elsőben csak a szülő sort importáld, a **Meglévő termékek frissítése** bekapcsolva. Ez változatossá alakítja a terméket, és felveszi az attribútumokat.
2. A fájlból töröld a szülő sort, és hagyd benne a variációk sorait.
3. A variációs fájlt a **Meglévő termékek frissítése** kikapcsolása mellett importáld. Ez létrehozza a variációkat, és a szülőhöz kapcsolja őket.

Végül nyisd meg a terméket, és ellenőrizd a **Variációk** fület: változatos termék lett-e a várt variációkkal. Közzétett terméknél, engedélyezett és árral rendelkező variációknál próbáld ki, hogy a vásárló kiválaszthatja és megveheti a kívánt opciókat. Ha nem jöttek létre a variációk, nézd meg, hogy mindegyiknek egyedi az SKU-ja, a `Parent` érték a szülő SKU-jával (vagy `id:123` alakkal) egyezik, az attribútum-oszlopok pedig a szülő értékeivel. Egyetlen importnál azt is, hogy a szülő sora megelőzi-e a variációkét.

### Beszállítói fájl importálása

A beszállítói fájlok oszlopnevei, azonosítói és attribútumformátumai gyakran eltérnek a WooCommerce elvárásaitól, ezért importálás előtt rendezd a fájlt, és előbb egy kis mintát próbálj ki.

1. Döntsd el, új termékeket hozol létre, vagy meglévőket frissítesz. Frissítésnél exportálj előbb néhány meglévő terméket, és ennek alapján ellenőrizd az oszlopneveket.
2. Válassz állandó azonosítót minden szülő termékhez (SKU vagy termékazonosító). Minden variációnak legyen egyedi SKU-ja. Ha a beszállító nem ad SKU-t, használj használható GTIN-t, UPC-t, EAN-t vagy ISBN-t a leképezett globális azonosító oszlopban, és hagyd üresen a variáció SKU-ját.
3. Egységesítsd az oszlopneveket és az attribútumértékeket: vágd le a felesleges szóközöket, használj egyféle kis- és nagybetűs írást, és vond össze a szinonimákat (például `L`, `l` és `Large` legyen mindenhol `Large`). Az attribútum neve és értéke betűre pontosan egyezzen a szülő és a variáció soraiban.
4. Egy szülő sorban a `Type` legyen `variable`, legyen benne az `SKU` vagy az `ID`, és az attribútum minden értéke. Minden variációnak külön sora legyen `variation` típussal, egyedi SKU-val (vagy használható globális azonosítóval), a szülőt megadó `Parent` értékkel és a hozzá tartozó attribútumértékkel.
5. Töröld a beszállító saját oszlopait, a képleteket, a pénznemjeleket, a felesleges szóközöket és a nem támogatott formázást. Mentsd UTF-8 CSV-ként. Az alap importáló az ismert termékmezőket és a `meta:` előtagú oszlopokat ismeri fel; a bővítmények saját mezőihez a bővítmény saját leírása kell.
6. Készíts biztonsági mentést, és próbáld ki az importot egy szülővel és néhány variációval egy teszt oldalon. Nézd meg az eredményt, és nyisd meg a szülő terméket: a variációk, attribútumok, árak, készlet és képek rendben vannak-e.
7. Ha külön szülő- és variációs fájl kell, kövesd a két importos menetet: előbb a szülőt, utána a variációkat. Ismételt importnál tartsd meg az állandó azonosítókat. Bekapcsolt **Meglévő termékek frissítése** mellett a WooCommerce ID vagy SKU alapján párosít. Kikapcsolt állapotban a már létező ID-jű vagy SKU-jú sorokat kihagyja.

Ha sorok maradnak ki, vagy nem jön létre a variációs szerkezet, nézd át az import hibás vagy kihagyott soroknak szóló jelentését: a szülő ID-jét vagy SKU-ját, a variációk SKU-it, a `Type` és `Parent` értékeket, valamint az attribútumok neveit és értékeit. Javítsd a fájlt, és csak utána importáld újra. Ne futtasd újra és újra a teljes fájlt, amíg a kis teszt nem sikerül.

## Hibaelhárítás az importnál

Ha az import lefutott, de hiányoznak vagy kimaradtak termékek, először a naplót nézd meg. Gyakori okok:

- Már van termék ugyanazzal az SKU-val vagy ID-vel, és nem jelölted be a **Meglévő termékek frissítése** jelölőnégyzetet.
- A CSV oszlopai vagy értékei nem felelnek meg a lent látható oszloplistának.
- A `Published` érték váratlan állapotot ad a terméknek (támogatott értékei: közzétett, privát, vázlat, jóváhagyásra vár).
- Egy bővítmény vagy a sablon ütközése akasztja meg az importot.
- A CSV túl nagy, a szerver egy kérésben nem tudja feldolgozni. Bontsd kisebb fájlokra, és importáld külön.

**„Sorry, this file type is not permitted for security reasons.”** Ez a hiba egyes szervereken akkor jelenik meg, ha a CSV HTML-t tartalmaz, és a WordPress rosszul ismeri fel a fájltípust. Győződj meg róla, hogy a fájl CSV-ként van mentve. Ha így is hibát kapsz, töltsd fel a CSV-t a webhely `uploads` mappájába SFTP-vel vagy a tárhely fájlkezelőjével, majd az importálóban a **Speciális beállítások megjelenítése** alatt add meg a szerveren lévő útvonalat. Ha az sem működik, kérd meg a tárhelyszolgáltatót, hogy nézze át az engedélyezett fájltípusokat és a feltöltési beállításokat.

**Nagy importok.** A nagy fájlok a szerver memóriájától, a feltöltési korlátoktól és a feldolgozási időtől függnek. Nagy katalógus előtt készíts biztonsági mentést, és próbáld ki egy kis fájllal egy teszt oldalon. Bontsd a CSV-t kisebb részekre, így a hibák könnyebben megtalálhatók. A feltöltő oldalon látható **Maximális méret** a szerver szintjén van beállítva, a megemeléséhez a tárhelyszolgáltatót kell megkérni.

## Termékek exportálása

![A Termékek exportálása oldal az oszlopok, a terméktípusok, a kategóriák és az egyéni meta-információk beállításaival](./kepek/termekek-rendelesek-csv-export.webp)

*A Termékek exportálása oldal az oszlopok, a terméktípusok, a kategóriák és az egyéni meta-információk beállításaival* (https://minta-bolt.hu/wp-admin/edit.php?post_type=product&page=product_exporter)

Az oldalon az exportált oszlopokat, terméktípusokat és kategóriákat szűrheted; alapból minden bekerül.

1. Nyisd meg a **Termékek → Minden termék** oldalt.
2. Kattints az **Exportálás** gombra.
3. Válaszd ki, mely oszlopok kerüljenek bele, vagy hagyd meg az **Összes oszlop exportálása** alapot.
4. Válaszd ki a terméktípusokat és a kategóriákat, vagy hagyd az alapot, hogy minden termék és kategória exportálódjon.
5. Ha a WooCommerce vagy más bővítmények termékadataira (metaadatok) is szükséged van, jelöld be az **Igen, exportáljon minden egyéni meta információt** jelölőnégyzetet. Ezek az oszlopok `meta:` előtagot kapnak: a `product_depth` kulcsú adat például `meta:product_depth` lesz.
6. Kattints a **CSV generálása** gombra, és várd meg, amíg elkészül.

A böngésző letölti az exportált CSV-fájlt.

A WooCommerce az exportált fájlban egyes variációk nevéből kihagyhatja az attribútumok értékeit. Ez várt működés, ha a terméknek legalább három attribútuma van, vagy legalább kettő, és az egyik attribútum neve legalább két szóból áll. A variációnevek exportálásának módosítása fejlesztői feladat.

### Kijelölt termékek exportálása

A termékeket közvetlenül a listából is exportálhatod.

1. Nyisd meg a **Termékek → Minden termék** oldalt.
2. Jelöld ki az exportálni kívánt termékeket.
3. Kattints az oldal tetején megjelenő **Exportálás X kijelölt** gombra (például „Exportálás 5 kijelölt”); a gombon a kijelölt termékek száma látszik.

## A CSV oszlopai

A beépített importáló és exportáló ugyanezt az oszlopsémát használja.

| Oszlop | Példa | Megjegyzés |
|---|---|---|
| `ID` | `100` | Meglévő termék azonosítása frissítéshez. Ha a megadott ID-vel nincs termék, a sor kimarad. Új termékhez nem adhatsz meg konkrét azonosítót. |
| `Type` | `simple`, `variation`, `virtual` | Támogatott értékek: `simple`, `variable`, `grouped`, `external`, `variation`, `virtual`, `downloadable`. Több típust vesszővel választhatsz el. |
| `SKU` | `polo-fekete` | A termék azonosítója párosításhoz és ismételt importhoz. Bekapcsolt frissítésnél a globális azonosítót csak akkor használja a WooCommerce, ha az ID és az SKU is üres. Az új variációnak egyedi SKU kell, vagy üres SKU és használható globális azonosító. Üres értékből nem generál SKU-t. |
| `GTIN, UPC, EAN, or ISBN` | `0123456789012` | A globális egyedi azonosító. Frissítésnél csak akkor párosít vele, ha az ID és az SKU üres. Ha a sor `Type` értéke eltér a megtalált termék típusától, a sor hibás lesz. |
| `Name` | `Kerámia bögre` | Kötelező. |
| `Published` | `1` | `1` közzétett, `0` privát, `-1` vázlat, `2` jóváhagyásra vár. Használható még a `true` (közzétett) és a `false` (vázlat). |
| `Is featured?` | `1` | `1` igaz, `0` hamis. |
| `Visibility in catalog` | `visible` | Értékek: `visible`, `catalog`, `search`, `hidden`. |
| `Short description` | `Kézzel festett bögre.` | Rövid leírás. |
| `Description` | `Hosszabb leírás a termékről.` | Hosszú leírás. |
| `Date sale price starts` | `2026-06-07` | Az akció kezdete (a megadott nap eleje). Üresen nincs kezdődátum. |
| `Date sale price ends` | `2026-06-14` | Az akció vége (a megadott nap vége). Üresen nincs záródátum. |
| `Tax status` | `taxable` | Értékek: `taxable`, `shipping`, `none`. |
| `Tax class` | `standard` | Egy meglévő adóosztály rövid neve (slug). |
| `In stock?` | `1` | `1` igaz, `0` hamis. |
| `Stock` | `20` | Szám esetén bekapcsolja a készletkezelést. A `parent` érték a szülőtől örökölt készletbeállítást jelent. Üresen nincs készletkezelés. |
| `Low stock amount` | `3` | Üres vagy szám. |
| `Backorders allowed?` | `1` | `1` igaz, `0` hamis, `notify`. |
| `Sold individually?` | `1` | `1` igaz, `0` hamis. |
| `Weight (unit)` | `100` | Csak számot olvas be. |
| `Length (unit)` | `20` | Csak számot olvas be. |
| `Width (unit)` | `20` | Csak számot olvas be. |
| `Height (unit)` | `20` | Csak számot olvas be. |
| `Allow customer reviews?` | `1` | `1` igaz, `0` hamis. |
| `Purchase note` | `Köszönjük a rendelést.` | Vásárlási megjegyzés. |
| `Sale price` | `20.99` | Akciós ár. |
| `Regular price` | `24.99` | Normál ár. |
| `Categories` | `Konyhai kellékek, Textíliák > Sálak` | Vesszővel elválasztott kategóriák, a hierarchiát `>` jelzi. |
| `Tags` | `Kézzel készített, Környezetbarát` | Vesszővel elválasztott címkék. |
| `Shipping class` | `Standard` | A szállítási osztály neve. |
| `Images` | `https://pelda.hu/bogre.jpg, https://pelda.hu/bogre-oldal.jpg` | Az első kép a kiemelt kép. |
| `Download limit` | `1` | `n/a` vagy egy korlát. |
| `Download expiry days` | `1` | `n/a` vagy napok száma. |
| `Parent` | `id:100`, `polo` | A variáció szülőjének ID-je vagy SKU-ja; az ID elé `id:` kerül. Az export lehetőleg SKU-t használ. |
| `Grouped products` | `id:100, id:101`, `polo, bogre` | Vesszővel elválasztott ID-k vagy SKU-k, az ID-k elé `id:`. |
| `Upsells` | `id:100, id:101`, `polo, bogre` | Vesszővel elválasztott ID-k vagy SKU-k. |
| `Cross-sells` | `id:100, id:101`, `polo, bogre` | Vesszővel elválasztott ID-k vagy SKU-k. |
| `External URL` | `https://pelda.hu/termek/` | Külső termék címe. |
| `Button text` | `Megveszem` | A külső termék gombjának felirata. |
| `Position` | `1` | Menüsorrend, a rendezéshez. |
| `Attribute 1 name` | `Szín` | A WooCommerce a megegyező globális attribútumot használja, ennek hiányában termékszintű attribútumot hoz létre. További attribútumokhoz számozott oszlopokat adj hozzá. A „Variációkhoz használatos” beállítást magától kapcsolja. |
| `Attribute 1 value(s)` | `Kék, Piros, Zöld` | Vesszővel elválasztott értékek. Variációnál egy értéket adj meg; ha többet, az elsőt használja. Üres érték a variációnál azt jelenti: bármelyik. |
| `Attribute 1 default` | `Kék` | A változatos termék alapértelmezett értéke. |
| `Attribute 1 visible` | `1` | `1` igaz, `0` hamis. Az összerendelő oldalon **A tulajdonságok láthatósága** a felirata. |
| `Attribute 1 global` | `1` | `1` igaz, `0` hamis. Az összerendelő oldalon **Globális tulajdonság?** a felirata. |
| `Download 1 name` | `Letöltés 1` | A letölthető fájl neve. |
| `Download 1 URL` | `fajl.zip` | A letölthető fájl címe. |

Az importáló az ismert oszlopokat és a termék metaadat-oszlopait kezeli, az ismeretlen oszlopokat nem importálja. Egyéni termékmetaadat importálásához a CSV fejlécét lásd el `meta:` előtaggal, például `meta:product_depth` egy `product_depth` kulcsú egyéni mezőhöz. Ha a WooCommerce nem rendeli hozzá magától, az összerendelő oldalon válaszd az **Importálás metaadatként** lehetőséget. Teljesen új importmezők felvétele egyedi kódot igényel, ez fejlesztői feladat.
