Automatický import dokáže během několika minut založit tisíce produktů, aktualizovat ceník a propsat skladovou dostupnost z ERP nebo systému dodavatele. Stejnou rychlostí ale může vyprodat celý katalog, přepsat správné ceny nulou nebo vytvořit stovky duplicit. Rozhodující proto není samotné načtení CSV či XML, ale pravidla, kontroly a možnost dohledat každý provedený zásah.
Bezpečný import funguje jako řízený datový proces. Zdroj nejdřív uloží, ověří jeho strukturu, spáruje záznamy, vypočítá změny a ukáže jejich souhrn. Teprve potom zapisuje po dávkách. Nejednoznačné položky izoluje, neobvyklé změny zastaví a po dokončení porovná očekávaný výsledek se skutečným stavem e-shopu.
Co lze automaticky importovat
Rozsah závisí na zdrojovém systému a tom, kdo je vlastníkem jednotlivých údajů. Běžně se synchronizují:
- názvy, popisy a krátké popisy produktů,
- SKU, EAN nebo GTIN a kódy dodavatele,
- běžné a akční ceny včetně platnosti,
- skladové množství, stav a možnost objednání,
- varianty, atributy a jejich kombinace,
- kategorie, značky, štítky a filtrační parametry,
- hmotnost, rozměry a přepravní třídy,
- obrázky, dokumenty a návody,
- stav publikace nebo ukončení nabídky,
- dodavatelské termíny a minimální množství.
Není nutné přenášet vše. ERP může být zdrojem ceny a skladu, zatímco marketingový popis a fotografie spravuje e-shop. Pokud import bez rozlišení přepíše celý produkt, ruční obsah při každém běhu zmizí.
Každé pole musí mít vlastníka
Nejdůležitější rozhodnutí je, který systém je zdrojem pravdy pro konkrétní atribut. Nestačí říct, že „produkty řídí dodavatel“. Dodavatel může určovat dostupnost a katalogové parametry, ale nemá přepisovat vlastní SEO text, lokální kategorii nebo prodejní cenu vypočtenou e-shopem.
Příklad rozdělení
- ERP: interní SKU, nákupní cena, prodejní cena, DPH a účetní stav.
- WMS nebo sklad: fyzická zásoba, rezervace a očekávané příjmy.
- Dodavatelský feed: technické parametry, obrázky a jeho dostupnost.
- WooCommerce: prodejní text, SEO, webové kategorie, doporučené produkty a merchandising.
V datovém slovníku u každého pole evidujte zdroj, směr, transformaci, povinnost a chování při prázdné hodnotě. Toto jednoduché rozhodnutí zabrání většině pozdějších sporů o to, proč se údaj změnil.
Zdroj může být CSV, XML, JSON nebo API
CSV
CSV je praktické pro tabulková data a ruční kontrolu. Komplikace vznikají u oddělovačů, uvozovek, víceřádkových textů, desetinných čárek a kódování. Soubor generovaný tabulkovým procesorem může změnit dlouhé EAN na vědecký zápis nebo odstranit počáteční nuly.
XML
XML dobře nese hierarchická data a více hodnot, ale vyžaduje správné kódování, namespace a práci se speciálními znaky. Používejte parser, ne regulární výrazy nebo ruční hledání značek.
JSON a API
API umožňuje častější a dílčí aktualizace. Musí však řešit autentizaci, stránkování, limity požadavků, timeouty a změny verzí. To, že API vrátí HTTP 200, ještě neznamená úplná data; kontrolujte schéma, počet položek i aplikační chyby.
Databázový nebo SFTP export
U starších systémů může být zdrojem pravidelný soubor nebo čtení z repliky databáze. Přímý přístup k produkční databázi dodavatele je křehký. Preferujte dokumentované rozhraní a stabilní exportní pohled, aby interní změna tabulek nerozbila e-shop.
Stabilní identifikátory jsou základ
Import musí bezpečně poznat, zda má produkt vytvořit, aktualizovat nebo označit jako ukončený. Název není identifikátor: mění se, překládá a více produktů může mít stejný. Obvykle se používá SKU, interní ID zdroje nebo kombinovaný klíč dodavatel + jeho kód.
WooCommerce dokumentace k importům pracuje s párováním podle ID nebo SKU a u přenosu mezi různými instalacemi doporučuje SKU, protože databázová ID se mohou lišit. Vlastní synchronizace by měla navíc uložit mapovací vazbu mezi externím ID a konkrétním produktem či variantou.
Co když dodavatel změní SKU
Změnu je třeba přenést jako řízené přejmenování identity, ne jako smazání starého a vytvoření nového produktu. Zdroj by měl poskytovat neměnné interní ID nebo mapu nahrazených kódů. Bez ní patří případ do ruční kontroly, jinak se ztratí historie a vazby objednávek.
Více dodavatelů stejného produktu
Dodavatelský kód identifikuje nabídku dodavatele, nikoli nutně katalogový produkt. Jeden produkt může mít více zdrojů s různou cenou, dostupností a termínem. Oddělte interní produkt od dodavatelských nabídek a teprve pravidlem vyberte preferovaný zdroj.
Varianty vyžadují samostatné mapování
Variabilní produkt je rodičovská skupina a jednotlivé kombinace jsou prodejné varianty. Každá varianta může mít vlastní SKU, EAN, cenu, sklad, obrázek, hmotnost a stav. Import musí nejdřív založit nebo najít rodiče, připravit atributy a potom bezpečně spárovat varianty.
Časté chyby
- všechny varianty používají SKU rodiče,
- hodnota „tmavě modrá“ se při dalším importu změní na „navy“ a vznikne nový atribut,
- zdroj neodeslal jednu variantu a import ji bez varování smazal,
- sklad rodiče přepisuje sklady jednotlivých variant,
- obrázek barvy se přiřadí všem kombinacím,
- nová velikost vytvoří druhý rodičovský produkt.
Hodnoty atributů normalizujte pomocí mapy, ne pouze převodem na malá písmena. U rozměrů, materiálů a barev potřebujete řízený slovník synonym a jednotek.
Bezpečný průběh importu

1. Převzetí a archivace zdroje
Každý běh dostane vlastní ID. Uložte původní soubor nebo alespoň kontrolní otisk, čas, velikost, zdroj a verzi schématu. Když dodavatel přepíše soubor na stejné URL, bez archivace nezjistíte, z čeho chybná změna vznikla.
Soubor nejdřív stahujte do dočasného umístění. Ověřte dokončení přenosu a až potom ho předejte parseru. Částečně stažený export nesmí vypadat jako katalog s chybějícími produkty.
2. Technická validace
Kontroluje formát, kódování, hlavičky, datové typy, povinné sloupce a čitelnost celého dokumentu. U API ověřuje stránkování a to, že byly načtené všechny stránky.
Kontrolní údaje
- počet záznamů a jedinečných klíčů,
- počet duplicitních SKU,
- počet prázdných povinných polí,
- nejnižší a nejvyšší cena či sklad,
- měny, sazby DPH a jednotky,
- neznámé kategorie a hodnoty atributů,
- platnost URL obrázků a dokumentů.
3. Normalizace a mapování
Zdrojová data převedete do interního modelu. Desetinnou čárku změníte na standardní číslo, kód země na očekávanou hodnotu, dodavatelskou kategorii na webovou a externí barvu na řízený atribut. Jednotky převádějte explicitně: gram není kilogram a milimetr není centimetr.
Normalizovanou hodnotu držte odděleně od originálu. Při chybě pak správce vidí, co dodavatel poslal a jak import údaj interpretoval.
4. Párování a plán změn
Import nejdřív vytvoří plán: co založí, aktualizuje, přeskočí, ukončí nebo pošle do karantény. U aktualizace vypíše rozdíly po polích. Tento krok zatím nemění e-shop.
Náhled má ukázat
- počet nových a změněných produktů,
- počet změn cen a jejich rozsah,
- počet položek přecházejících na nulový sklad,
- produkty chybějící proti minulé dávce,
- nové a odstraněné varianty,
- neznámé identifikátory a konflikty,
- změny publikace, kategorií a obrázků.
5. Ochranná pravidla a schválení
Běžný import může projít automaticky, neobvyklý se zastaví před zápisem. Prahy nastavte podle katalogu a zdroje. Změna ceny o 20 % může být běžná v jednom oboru a kritická v jiném.

Příklady pojistek
- více než stanovený podíl cen klesl nebo vzrostl mimo toleranci,
- medián ceny se změnil neobvyklým směrem,
- sklad je u většiny katalogu náhle nula,
- zdroj obsahuje výrazně méně položek než poslední úspěšná dávka,
- vzniká neobvykle mnoho nových produktů nebo variant,
- měna či sazba DPH se změnila u celé skupiny,
- chybí povinný sloupec nebo se objevila neznámá verze schématu,
- zdroj je starší než povolená doba.
Pojistka nemá všechno slepě odmítnout. Může izolovat jen dotčenou kategorii nebo pole. Pokud jsou ceny podezřelé, bezpečný skladový import může pokračovat, pokud jsou procesy oddělené a firma to dovolí.
6. Zápis po dávkách
Tisíce produktů nezpracovávejte v jednom webovém požadavku. Rozdělte změny do dávek a provádějte je na pozadí s uloženým průběhem. Při timeoutu nebo restartu proces pokračuje od potvrzeného bodu a nevytváří duplicity.
Dávka musí být idempotentní: opakované zpracování stejného plánu vede ke stejnému výsledku. WooCommerce nabízí REST API a vlastní produktové objekty; při vývoji pluginu používejte veřejná WooCommerce rozhraní namísto přímého zápisu do interních tabulek a metadat, kde je dostupná oficiální API vrstva.
7. Kontrola výsledku
Po dokončení porovnejte plán se skutečností. Nestačí hláška „skript skončil“. Ověřte počty vytvořených a změněných produktů, chyby jednotlivých záznamů, stav fronty, dostupnost webu a několik konkrétních produktových stránek.
Výsledný report obsahuje čas, délku běhu, zdrojovou verzi, statistiky, varování a seznam položek vyžadujících zásah. Správce má mít možnost filtrovat podle důvodu a záznam bezpečně zpracovat znovu.
Úplný a rozdílový import
Úplný snímek
Zdroj posílá celý aktuální katalog. Výhodou je jednodušší obnova a možnost zjistit, co ve zdroji chybí. Nebezpečné je považovat chybějící položku automaticky za pokyn ke smazání. Soubor mohl být neúplný.
Rozdílový import
Zdroj posílá jen změny od určitého bodu. Je rychlejší, ale musí mít spolehlivý kurzor, pořadí a způsob oznámení smazání. Ztracená dávka může nechat data trvale stará.
Kombinace
Průběžné změny udržují ceny a sklady aktuální, pravidelný úplný snímek kontroluje konzistenci. Oba procesy používají stejné mapování a identifikátory.
Co znamená chybějící a prázdná hodnota
Tyto dva stavy nejsou stejné. Chybějící sloupec může znamenat „tento zdroj pole nespravuje“. Prázdná buňka může znamenat „hodnotu vymaž“, „hodnota není známá“ nebo chybu exportu. Význam definujte pro každé pole.
WooCommerce dokumentace k importům upozorňuje, že při aktualizaci lze podle nastavení přepisovat data i prázdnými hodnotami. V automatizaci musí být tato volba explicitní. Prázdný název nebo cena nemá produkt potichu poškodit.
Cenové importy
Cena není jen jedno číslo. Může zahrnovat nákupní cenu, běžnou prodejní cenu, akční cenu, měnu, sazbu DPH, množstevní pravidla, B2B úroveň a dobu platnosti.
Výpočet prodejní ceny
Pokud dodavatel posílá nákupní cenu, definujte výpočet marže, zaokrouhlení, DPH a minimální ceny. Marže a přirážka nejsou totéž. Přirážka 25 % k nákupní ceně neznamená marži 25 % z prodejní ceny.
Pravidla mohou být podle kategorie, značky nebo cenového pásma. Výsledek musí být reprodukovatelný: uložte verzi pravidla a vstupy, podle kterých cena vznikla.
Měny a kurzy
Uveďte zdroj kurzu, čas platnosti a frekvenci aktualizace. Neočekávaná nulová nebo obrácená hodnota kurzu musí import zastavit. Zaokrouhlujte až na určeném kroku, jinak může dojít k rozdílu mezi katalogem, feedem a pokladnou.
Akční ceny
Importujte začátek a konec akce jako časové údaje s jasným časovým pásmem. Když zdroj přestane akční cenu posílat, pravidlo musí určit, zda ji ukončit, ponechat nebo označit k revizi. Staré akce nesmějí zůstat aktivní jen proto, že poslední dávka byla neúplná.
Skladové zásoby a prodejná dostupnost
Fyzický stav ve skladu není vždy počet, který lze nabídnout. Prodejná zásoba může být:
fyzická zásoba − rezervace − bezpečnostní rezerva − blokované kusy + povolená budoucí dostupnost.
Určete, kde se rezervace evidují. WooCommerce při zapnuté správě skladu odečítá zásobu při prodeji a může držet sklad pro nezaplacené objednávky po nastavenou dobu. Pokud ERP posílá fyzický stav bez znalosti těchto rezervací a každých pět minut ho přepíše, může znovu nabídnout už prodané kusy.
Možné modely
- ERP je autorita: dostává objednávky téměř okamžitě a vrací již rezervovanou prodejnou zásobu.
- WooCommerce je autorita pro web: importuje příjmy a korekce, ale lokální objednávky odečítá sám.
- Centrální skladová služba: drží rezervace pro více prodejních kanálů a e-shop z ní čte dostupnost.
Nejhorší je neřízená obousměrná synchronizace, kde oba systémy přepisují absolutní množství bez verzí. Lepší jsou jednoznačné směry nebo skladové pohyby s identifikátorem a časem.
Více skladů
Celkový součet nemusí být prodejný online. Některá pobočka nepodporuje expedici, část kusů je vyhrazena pro osobní prodej a doba přesunu se liší. Importujte skladové lokace samostatně a pravidlem určete, které vstupují do webové dostupnosti.
U každé lokace evidujte čas poslední aktualizace. Pokud jeden sklad přestane posílat data, nepovažujte automaticky jeho stav za nulu ani nekonečně platný. Nastavte maximální stáří a bezpečný fallback.
Co dělat, když produkt ze zdroje zmizí
Chybění v jednom běhu není bezpečný pokyn ke smazání. Může jít o neúplný soubor, změnu filtru nebo výpadek dodavatele. Použijte stavový proces:
- položka se označí jako chybějící v aktuálním snímku,
- ověří se úplnost zdroje a předchozí výskyty,
- po stanoveném počtu potvrzených běhů se skryje nebo ukončí,
- historická data a vazby objednávek zůstávají,
- fyzické smazání je samostatná a výjimečná operace.
WooCommerce importní nástroje mohou nabízet odstranění produktů, které ve zdroji nejsou. U automatického procesu je tato volba vysoce riziková a vyžaduje kontrolu úplnosti i schválení.
Obrázky a dokumenty
Stahování médií je pomalé a může zahltit server. Neimportujte obrázek znovu při každém běhu jen proto, že URL zůstala ve zdroji. Uložte vazbu, kontrolní otisk nebo informace o změně. Před stažením ověřte typ, velikost, rozměry a povolenou doménu.
Rizika
- URL vrací HTML chybu místo obrázku,
- stejný soubor se vytváří v knihovně opakovaně,
- dočasný odkaz po čase expiruje,
- velký soubor vyčerpá paměť při zpracování,
- škodlivý nebo nepovolený formát se vydává za obrázek,
- změna pořadí galerie přepíše ruční výběr hlavní fotografie.
Média zpracovávejte samostatnou frontou. Produkt může být vytvořen s bezpečným placeholderem a publikován až po dokončení povinných obrázků, pokud to pravidla katalogu vyžadují.
Kategorie, atributy a slovníky
Dodavatelský strom není automaticky vhodný pro navigaci e-shopu. Udržujte mapu externí kategorie na interní. Neznámou hodnotu nedávejte potichu do univerzální kategorie; zařaďte ji do karantény nebo označte k mapování.
Totéž platí pro značky, materiály a barvy. Automatické vytváření každého nového textu vede k hodnotám „Černá“, „černá“, „Black“ a „BLACK“. Normalizace používá řízené slovníky a umožňuje správcům přidat nové synonymum bez změny kódu.
Publikovat okamžitě, nebo do konceptu
Nový produkt nemusí být připravený k prodeji jen proto, že má cenu a sklad. Může mu chybět překlad, kategorie, fotografie, právní údaj nebo doprava. Nastavte minimální publikační pravidla.
- automaticky publikovat pouze kompletní a validní položky,
- nové kategorie či značky poslat ke schválení,
- nekompletní produkt vytvořit jako koncept,
- změnu kritických polí u významných produktů schválit ručně,
- ukončený produkt skrýt, ale zachovat jeho URL a historii podle SEO strategie.
Karanténa místo tichého přeskočení
Záznam, který nelze bezpečně zpracovat, patří do karantény s důvodem. Může mít duplicitní SKU, neznámou měnu, chybějícího rodiče varianty nebo cenu mimo limit. Správce chybu opraví ve zdroji, doplní mapování nebo schválí výjimku.
Po opravě se záznam zpracuje znovu ve stejné dávce. Nevytvářejte ruční produkt bez vazby, protože další import by opět nevěděl, kam změnu propsat.
Audit a možnost návratu
U každého změněného pole ukládejte starou hodnotu, novou hodnotu, zdroj, dávku a čas. U velkého katalogu lze detailní audit uchovávat omezenou dobu a dlouhodobě držet souhrn a původní zdroj.
Návrat není vždy prosté přepsání starých hodnot. Mezitím mohla vzniknout objednávka nebo ruční úprava. Rollback musí ověřit, zda aktuální hodnota stále pochází z chybné dávky. Skladové množství vracejte zvlášť opatrně, protože se od importu mohlo změnit prodejem.
Monitoring
Automatický import musí být viditelný i tehdy, když běží bez zásahu. Sledujte:
- čas posledního úspěšného převzetí a zápisu,
- stáří zdrojových dat,
- počet načtených, nových, změněných a chybných záznamů,
- velikost fronty a nejstarší čekající položku,
- změny cen a skladů mimo normální rozsah,
- počet produktů v karanténě,
- dobu běhu a spotřebu prostředků,
- výsledek kontrolního vzorku na webu.
Upozornění rozdělte podle závažnosti. Jeden chybějící obrázek není totéž jako nulové sklady v celém katalogu nebo zastavený cenový import.
Výkon a škálování
Import pouštějte na pozadí, ne během požadavku návštěvníka. Používejte stránkování zdroje, dávky, indexované mapovací klíče a omezenou souběžnost. Příliš mnoho paralelních zápisů může zatížit databázi, cache i navazující pluginy.
Změňte pouze pole, která se skutečně liší. Každé zbytečné uložení může spustit přepočty, webhooky, indexaci vyhledávání a invalidaci cache. Rozdílový plán tedy šetří výrazně více než samotný databázový dotaz.
Údržbové okno
Velká první migrace nebo změna tisíců obrázků může potřebovat plánované období. Běžné ceny a sklady však mají chodit průběžně bez odstávky. Oddělte těžké katalogové operace od rychlých aktualizací dostupnosti.
Testovací scénáře
- nový jednoduchý produkt,
- aktualizace jen ceny bez přepsání popisu,
- prázdná a chybějící hodnota ve stejném poli,
- nová, změněná a odstraněná varianta,
- duplicitní SKU ve zdroji,
- změna externího kódu produktu,
- cena v jiné měně nebo s desetinnou čárkou,
- nulová, záporná a extrémně nízká cena,
- nulový sklad v celém neúplném souboru,
- produkt chybějící v jednom a více snímcích,
- API stránkování s opakovaným nebo vynechaným záznamem,
- timeout uprostřed dávky a bezpečné pokračování,
- současná ruční změna během importu,
- nedostupný nebo příliš velký obrázek,
- rollback po částečně provedené dávce.
Testujte na předprodukční kopii s realistickou velikostí dat. Import deseti položek neodhalí timeout, paměť ani závod dvou pracovníků. Produkční zdroj před testem anonymizujte tam, kde obsahuje neveřejná nebo osobní data.
Postup zavedení
1. Inventura dat
Sepište zdroje, vlastníky polí, identifikátory, frekvenci změn a objemy. Ověřte kvalitu několika skutečných exportů, ne jen ukázkového souboru.
2. Datový slovník a mapování
Definujte každý atribut, jednotku, prázdnou hodnotu a směr synchronizace. Připravte řízené slovníky kategorií a parametrů.
3. Import v režimu náhledu
První verze nic nezapisuje. Vygeneruje plán změn a statistiky. Tým ověří párování, ceny, sklady i varianty.
4. Pilotní zápis
Vyberte jednu kategorii nebo dodavatele. Změny provádějte po dávkách a kontrolujte produktové stránky, košík a feedy.
5. Automatizace s pojistkami
Zapněte plánovač, limity, karanténu, monitoring a upozornění. Kritické změny mohou dál vyžadovat schválení.
6. Pravidelné vyhodnocení
Sledujte počet ručních oprav, chyby zdroje a využití importovaných polí. Zbytečná data odstraňte z procesu, často chybné části opravte u zdroje.
Kontrolní seznam před ostrým provozem
- Každý produkt a varianta mají stabilní externí identifikátor.
- Je určený zdroj pravdy pro cenu, sklad, text i obrázky.
- Prázdná a chybějící hodnota mají jasný význam.
- Import před zápisem ukáže plán a neobvyklé změny.
- Neúplný soubor nemůže hromadně skrýt nebo smazat produkty.
- Cenové a skladové limity zastaví podezřelou dávku.
- Zápis běží po dávkách, je idempotentní a umí pokračovat.
- Nejednoznačné záznamy jdou do karantény.
- Každá změna je dohledatelná podle zdroje a dávky.
- Monitoring hlídá stáří dat, frontu i výsledek.
- Existuje otestovaný postup návratu.
- Import nepřepisuje ručně spravovaná pole.
Rychlost importu má smysl jen s kontrolou
Automatizace katalogu není jednorázový převod souboru. Je to dlouhodobá smlouva mezi zdroji dat a e-shopem. Musí přesně vědět, co aktualizuje, podle čeho položky páruje a jak reaguje na neúplný nebo chybný vstup.
Pokud potřebujete propojit WooCommerce s ERP, skladem nebo katalogy dodavatelů, popište nám zdroje dat a současný postup. Navrhneme import s náhledem změn, pojistkami, dávkovým zpracováním a dohledatelnou historií, aby automatizace šetřila práci bez zbytečného rizika.