FTP/SFTP feedy: nastavení a automatizace importu
Část dodavatelů neposílá feed na URL, ale nahrává ho na FTP. Ukážeme, jak takový přenos nastavit bezpečně, jak poznat poloviční soubor a jak z něj udělat automatický import.
Většina feedů dodavatelů žije na URL adrese. Stačí ji zadat do importu a hotovo. Jenže část velkoobchodů, výrobců a hlavně firem s ERP systémem posílá data jinak: soubor nahrají na FTP server, ať už svůj, nebo váš. Ceník v CSV, sklad v XML, někdy obojí zabalené v ZIP.
E-shopové platformy s tím často neumí pracovat napřímo. Shoptet v automatickém importu pracuje s URL adresou XML souboru ve svém formátu. FTP je tedy potřeba přemostit. V článku popisujeme, jak přenos nastavit bezpečně a jak z něj udělat import, který běží sám a nerozbije katalog.
FTP, FTPS a SFTP: co zvolit
Tři zkratky, tři různé věci. Rozdíl je hlavně v bezpečnosti:
| Protokol | Šifrování | Obvyklý port | Přihlášení | Doporučení |
|---|---|---|---|---|
| FTP | Žádné, heslo jde po síti v čitelné podobě | 21 (+ datové spojení) | Jméno a heslo | Jen když jiná možnost není |
| FTPS | TLS, stejně jako HTTPS | 21 (explicitní), 990 (implicitní) | Jméno a heslo, volitelně certifikát | Použitelné |
| SFTP | SSH, šifrované vše | 22 | Heslo nebo SSH klíč | Preferujeme |
SFTP není „FTP s S na konci“. Je to samostatný protokol nad SSH. Pro automatizaci má dvě výhody: jede přes jeden port, takže méně zlobí firewally, a umí přihlášení klíčem. Klíč nejde uhodnout a při odchodu člověka nebo změně serveru se dá snadno vyměnit. Více o protokolech najdete v hesle FTP a SFTP.
Pokud dodavatel nabízí jen čisté FTP, přijměte to, ale počítejte s tím, že přístupové údaje mohou uniknout. Dejte na takový účet jen práva ke čtení a jen do složky s feedem.
Kdo komu nahrává
Existují dva modely a každý má jiné starosti:
Stahujete z FTP dodavatele (pull). Dostanete přístup a soubor si stahujete sami. Je to nejčastější varianta. Riziko: dodavatel změní heslo, složku nebo název souboru a nedá vědět.
Dodavatel nahrává k vám (push). Připravíte FTP nebo SFTP účet, dodavatel na něj posílá soubory. Máte víc kontroly nad přístupy a víte přesně, kdy soubor dorazil. Riziko: musíte server spravovat, zálohovat a hlídat, aby se neplnil starými soubory.
U obou modelů si hned na začátku vyjasněte s dodavatelem:
- kdy se soubor přegenerovává a jak dlouho nahrávání trvá,
- jak se soubor jmenuje a jestli se název mění (třeba s datem),
- jaké má kódování (u českých CSV často windows-1250 místo UTF-8) a oddělovač,
- komu volat, když soubor nepřijde.
Neúplný soubor: nejčastější past
Největší problém FTP feedů je časování. Stáhnete soubor ve chvíli, kdy ho dodavatel teprve nahrává. Máte polovinu katalogu. Import pak buď spadne na nevalidním XML, nebo, což je horší, u chybějících produktů nastaví nulový sklad nebo je skryje.
Obrana má několik vrstev:
- Dočasný název. Dohodněte s dodavatelem, že nahrává jako
feed.xml.tmpa po dokončení soubor přejmenuje. Přejmenování je okamžité, takže nikdy nestáhnete rozpracovanou verzi. - Stabilní velikost. Když dohoda nejde, zkontrolujte velikost souboru dvakrát s odstupem. Pokud se mění, počkejte.
- Validita. XML musí jít celé načíst a mít ukončovací tag. U CSV kontrolujte počet sloupců na každém řádku.
- Rozumný počet položek. Když feed obvykle obsahuje 8 000 produktů a dnes 1 200, něco je špatně. Nastavte hranici, pod kterou se import nespustí a přijde upozornění.
- Kontrolní součet. Někteří dodavatelé přikládají soubor s hashem nebo počtem řádků. Pokud ho mají, využijte ho.
Import, který při podezřelém souboru radši nic neudělá a pošle upozornění, je vždycky lepší než import, který přepíše sklad nesmysly.
Jak přenos automatizovat
Samotné stažení je nejjednodušší část. Celý proces je malá ETL pipeline:
- Plánování. Úloha se spouští přes cron nebo plánovač integrační platformy. Čas nastavte krátce po tom, co dodavatel soubor obvykle přegeneruje.
- Stažení a kontrola změny. Pokud se čas změny nebo kontrolní součet od minula nezměnil, zpracování přeskočte.
- Rozbalení a převod kódování. ZIP, GZIP, windows-1250 na UTF-8.
- Kontroly úplnosti podle předchozí sekce.
- Transformace. Převod do formátu, kterému rozumí e-shop, mapování kategorií a parametrů, výpočet prodejní ceny.
- Zápis do e-shopu. Přes API platformy, nebo jako vygenerovaný XML feed na HTTPS adrese, který si e-shop sám načte.
- Archiv. Každý stažený soubor uložte s časovou značkou alespoň na několik týdnů. Když se v e-shopu objeví špatná cena, dohledáte, jestli přišla od dodavatele.
- Log a upozornění. Kdy se stahovalo, kolik položek, kolik změn, co selhalo.
U WooCommerce jde FTP i SFTP napojit i pluginem. Například WP All Import umí soubor stahovat z FTP a SFTP a spouštět import podle plánu. Plugin je placený a automatické plánování je podle dokumentace výrobce doplňková služba za 9 USD měsíčně, případně jde zdarma použít vlastní cron na serveru (k 9/2026, aktuální ceník ověřte u poskytovatele). Pro jednoho dodavatele s čistými daty to stačí. Když dodavatelů přibývá a každý posílá jiný formát, vyplatí se samostatná integrační vrstva mimo e-shop.
Bezpečnost a přístupy
Přístupové údaje k FTP bývají slabé místo. Pár pravidel, která dodržujeme:
- Hesla a klíče neukládáme do kódu ani do sdílených tabulek, ale do správce tajemství integrace.
- Každý dodavatel má vlastní účet. Když spolupráce skončí, účet se zruší.
- U vlastního serveru povolujeme přístup jen z IP adres dodavatele, pokud je mají pevné.
- Účty mají jen práva, která potřebují. Dodavatel nahrává do své složky, integrace z ní jen čte.
- U SFTP ověřujeme otisk klíče serveru, aby se integrace nepřipojila k podvržené adrese.
Jak na to prakticky
Checklist pro napojení FTP/SFTP feedu:
- Zjistěte protokol, adresu, port a způsob přihlášení. Když jde SFTP s klíčem, zvolte ho.
- Vyjasněte s dodavatelem název souboru, kódování, čas generování a kontakt pro případ výpadku.
- Dohodněte nahrávání pod dočasným názvem, nebo nastavte kontrolu stabilní velikosti.
- Nastavte minimální počet položek a validaci formátu.
- Naplánujte stahování krátce po generování, ne naslepo každých pět minut.
- Archivujte soubory a logujte každý běh.
- Nastavte upozornění, když soubor nepřijde nebo neprojde kontrolou.
FTP i SFTP napojení stavíme jako součást služby napojení dodavatelů a feedů. Jednorázová implementace začíná od 3 000 Kč za dodavatele, správa a hlídání běží měsíčním paušálem. Pokud potřebujete převádět víc formátů a posílat data i opačným směrem, podívejte se na importy a exporty. Když má dodavatel místo FTP k dispozici API, porovnání najdete v článku API napojení dodavatelů.
Potřebujete s tím pomoct?