Než začneme: co vlastní formát vlastně řeší
Ať dává všechno dál smysl, začněme u toho, co vlastní formát doopravdy řeší. Produktový feed je obyčejný textový soubor, ve kterém jsou data zabalená do značek — říká se jim tagy. Každá informace má svou značku: název, cenu, dostupnost, odkaz na obrázek. Háček je v tom, že si ty značky každý pojmenovává po svém. U jednoho dodavatele se jeden produkt jmenuje ITEM, u druhého PRODUKT; cena je jednou PRICE, jindy cena_s_dph. Žádný společný slovník neexistuje.
Nejlíp si Conviu představíte jako překladače. Nejběžnější formáty — Heureka, Zboží.cz, Google — umí rovnou, protože jejich slovník zná nazpaměť. Jakmile ale soubor mluví vlastním jazykem, který mezi hotové šablony nepatří, stačí ten jazyk Conviu jednou přeložit. Řeknete mu „tahle značka je produkt, tahle je cena" — a od té chvíle si s feedem poradí samo, při každé aktualizaci. Přesně tenhle překlad je vlastní (custom) formát.
A ať je jasné, kam až to sahá: vlastní formát není jen o XML. Conviu stejně tak načte i vydá CSV, JSON nebo XLSX a poradí si i se souborem, který má neobvyklé zanoření nebo nestandardní pojmenování polí — přesně s tím, na čem hotové konektory obvykle selžou. Jde tedy o pojistku pro reálný svět, kde data málokdy přijdou tak čistá, jak by měla.
Data přitom do Conviu jednou vtékají a jednou vytékají, takže vlastní jazyk může být na dvou místech:
- Na vstupu — soubor od dodavatele, který přijímáte. Přeložíte ho custom importem.
- Na výstupu — cílový systém (váš e-shop, sklad, ERP, srovnávač), který chce data ve své vlastní podobě. Sestavíte mu je custom exportem.
Když mluví vlastním jazykem vstup i výstup, přeložíte obojí a data mezi nimi ještě upravíte pravidly. Aspoň na jeden z těch případů narazí skoro každý e-shop, jakmile začne prodávat na víc místech — tak si oba v klidu projděme.
Custom import: jak Conviu naučit číst cizí soubor
Nejdřív jedna věc, která vám zůstane, i když zapomenete všechno ostatní. Ať vám přijde jakýkoli feed, ptáte se u něj pořád na tytéž tři věci: kde je seznam produktů, co je jeden produkt a jak se pozná. Jakmile si na ně odpovíte, zbytek je otázka pár minut. Import má čtyři kroky a projdeme si je i s tím, proč tam jsou.
- Odkud se soubor bere. Nejprve Conviu řeknete, kde váš soubor leží — na URL adrese, na FTP serveru, ve webové službě, v souboru z počítače nebo ve sdílené tabulce Google Sheets. Formát vás nesvazuje: Conviu načte XML, CSV, JSON, XLS i XLSX. Jen u něj vyberete odpovídající variantu, třeba „Vlastní XML formát“. (Než začnete, je potřeba registrace v aplikaci — pak už jste rovnou u nastavení.)
- Párování — tady odpovídáte na ty tři otázky. Kořen souboru spojíte se značkou CHANNEL (to je celý seznam), jednu položku zboží se značkou ITEM (to je jeden produkt) a jeho jednoznačný identifikátor se značkou ID. To ID stojí za chvilku pozornosti: je to nitka, po které Conviu pozná, že jde pořád o tentýž produkt — díky němu spáruje dnešní cenu se včerejším zbožím. Bez těchhle tří párování se import ani neuloží, a to je vlastně dobře: znamená to, že Conviu odmítá číst, dokud neví, co čte. Zbytek už přiřadíte podle významu a nic vás nepřekvapí — CATEGORYTEXT na kategorii, IMGURL na obrázek.
- Kontrola: kolik produktů se načetlo. Po prvním běhu uvidíte počet položek, a to je nejrychlejší způsob, jak si ověřit, že párování sedí. Když číslo odpovídá katalogu dodavatele, máte hotovo. Když ne, obvykle jste u ITEM vybrali o úroveň vyšší nebo nižší uzel; vrátíte se a označíte ten, který obaluje právě jeden produkt. Jedno kliknutí a čísla sednou.
- Doplňkový feed, když ceny chodí zvlášť. Tohle je drobnost, která ušetří spoustu starostí. Dodavatelé posílají katalog často jen jednou denně, ale ceny a skladovou dostupnost mění během dne — a posílají je v samostatném souboru. Ten připojíte k hlavnímu importu jako dodatečný import a necháte aktualizovat přesně v rytmu, v jakém dodavatel data mění. Ceny i dostupnost tak zůstávají přesné i při několika změnách za den, a to bez stahování celého katalogu pořád dokola.

Dodavatelů takhle napojíte, kolik potřebujete — a každý klidně ve svém vlastním jazyce; v Conviu se všichni sejdou nad jedním katalogem. Čím víc jich je, tím dřív narazíte na to, že jeden uvádí ceny s DPH a druhý bez, jeden váhu v gramech a druhý v kilech. Teď se tím netrapte: tyhle rozdíly srovnáte pravidly, ke kterým se za chvíli dostaneme. (A jestli budete chtít jít do hloubky zrovna u dodavatelských dat, máme na ně samostatného průvodce.)

Custom export: jak soubor napsat v jazyce příjemce
Export je zrcadlový obraz importu, a to je dobrá zpráva — polovinu už umíte. U importu jste cizí jazyk četli; teď v něm sami píšete, tedy skládáte soubor přesně tak, jak ho druhá strana čeká. Děláte to v exportu ve vlastním formátu.
Začít můžete od prázdné šablony, nebo si vyberete některou z ukázek — třeba feed pro Heureku — a přepíšete ji na svoje. Ukázka pomůže i u systému, který v nabídce není: vezmete tu, která se nejvíc blíží tomu, co potřebujete, a upravíte si ji. Než ji použijete, aplikace se vás zeptá, protože ukázka nahradí obsah šablony; pokud v ní už něco rozepsaného máte, uložte si to nejdřív stranou.
Samotná šablona je kostra výsledného souboru. Napíšete do ní názvy značek tak, jak je chce cílový systém, a na místa hodnot vložíte proměnné. Proměnná je prostě zástupné místo, které Conviu při každém běhu nahradí daty konkrétního produktu — jeho cenou, názvem, dostupností. Díky tomu šablonu napíšete jednou a výstup se pak generuje sám, pokaždé s aktuálními daty. Tohle je jádro celého kouzla: vy popíšete tvar, Conviu dosazuje obsah.
A protože šablon může být víc, vznikne z jedněch dat libovolný počet různě definovaných feedů. Platí to i obráceně: do jednoho výstupu lze sloučit několik importů, takže zboží od všech dodavatelů odejde jako jeden soubor, i když na vstupu přišlo pokaždé v jiné struktuře.
Nejčastější případ: feed pro váš vlastní e-shop
Většina lidí nesáhne po custom exportu kvůli srovnávači, ale kvůli vlastnímu e-shopu. Platformy jako Shoptet, Upgates nebo Eshop-rychle umí produkty hromadně naimportovat ze souboru — každá ale očekává svou vlastní strukturu a své názvy polí. Je to tedy přesně ta situace „vlastní jazyk na výstupu“, o které jsme mluvili na začátku.
Postup je vždycky stejný a druhá platforma už pro vás bude rutina:
- V nápovědě své platformy najdete, jak má soubor pro její import vypadat; obvykle je k dispozici i ukázkový soubor.
- Tu strukturu jednou opíšete do šablony custom exportu a doplníte proměnné.
- E-shopu předáte odkaz na hotový export a nastavíte, jak často se má obnovovat.
Od té chvíle běží aktualizace katalogu bez vás — Conviu export ve zvoleném intervalu přegeneruje a e-shop si ho sám načte.
Funguje to i naopak. Většina platforem umí vyexportovat, co v e-shopu máte, a takový soubor je zase v jejím vlastním jazyce — ideální vstup pro custom import. Tímhle směrem se vydáte, když chcete data z e-shopu obohatit a poslat dál nebo přenést celý katalog jinam.
Varianty: tři nastavení, která na sebe navazují
Varianty — velikosti trička, barvy stejného modelu — jsou jediné místo, kde se vyplatí zpomalit. Ale i tady platí jednoduché pravidlo: řídí je tři nastavení, a když je projdete v pořadí od vstupu k šabloně, výstup sedne napoprvé. Pojďme popořadě.
Na vstupu: identifikátor skupiny. Značka ITEMGROUP_ID — v nákupních feedech Googlu ji možná znáte jako item_group_id — říká Conviu, které nabídky patří k sobě. U hotových formátů Heureka, Zboží.cz a Google se načte sama, u vlastního formátu ji napárujete stejně jako ostatní značky. Právě díky ní drží Conviu všechny velikosti jednoho trička pohromadě u jednoho produktu.
Na výstupu: přepínač „Sloučit varianty“. Ten určuje, jestli výstup ponese jeden produkt s variantami, nebo samostatné položky. Každý cílový systém to chce jinak, tak se vyplatí mrknout do jeho zadání dřív, než šablonu dopíšete.
V šabloně: blok {{ variant }} … {{ end }}. Když varianty slučujete, píšete šablonu z pohledu hlavního produktu a k jednotlivým variantám se dostanete uvnitř tohoto bloku. Všechno mezi značkami se vygeneruje tolikrát, kolik má produkt variant, a proměnné uvnitř se vztahují ke konkrétní variantě.
Kdyby výstup přece jen nevypadal podle očekávání, projděte ta tři nastavení v tomhle pořadí. Nejčastěji stačí doplnit identifikátor skupiny na vstupu a zbytek se srovná sám.
Co patří do pravidel a co do šablony
Ještě jeden návyk a máte v tom pořádek na celý život. Mezi importem a exportem stojí pravidla, a právě jimi srovnáte to, co každý dodavatel pojmenoval po svém: přepis kategorií dodavatele na vaše, přepočet prodejních cen, sjednocení parametrů, skrytí zboží, které nemá jít ven, i hromadnou úpravu přes CSV nebo sdílenou tabulku v Google Sheets, na které může pracovat víc lidí zároveň.

Kam která úprava patří, poznáte podle jediné otázky: měla by platit i pro ostatní výstupy? Když ano, udělejte ji pravidlem nad daty — nastavíte ji jednou a propíše se do všech exportů naráz. Do šablony pak patří jen tvar konkrétního souboru, tedy názvy značek a jejich pořadí. Tenhle jeden návyk vám ušetří nejvíc práce: obecné úpravy nahoře nad daty, konkrétní podobu dole v šabloně.
Celý postup ve zkratce
- Založíte custom import, vyberete zdroj a napárujete CHANNEL, ITEM a ID — a pokud máte varianty, také ITEMGROUP_ID.
- Podle počtu načtených produktů si ověříte, že párování sedí.
- Co má platit pro všechny výstupy, nastavíte pravidlem.
- Pro každý cílový systém založíte vlastní custom export a v šabloně popíšete jeho strukturu.
- Nastavíte interval obnovy a předáte odkaz na hotový soubor.
Kam s tím dál
Když si to shrneme: vlastní formát je překladač mezi dvěma systémy, které se spolu samy nedomluví. Nastavíte ho jednou a dál pracuje za vás — a hlavně, teď už víte, proč se každý krok dělá, takže si poradíte i s feedem, který jste nikdy neviděli.
Až budete stavět víc výstupů zároveň, začne se vyplácet dívat na data jako na jeden zdroj, ze kterého se rozesílá do všech kanálů. Tomu principu se říká master feed a věnujeme se mu v článku Master feed: z jednoho zdroje na všechny kanály. A jestli si chcete pořádně ujasnit, co všechno má feed obsahovat, začněte u základů XML a CSV feedů.
Chcete si import i export nastavit sami? Podívejte se, co všechno umí Editor datových feedů; širší souvislosti shrnuje téma Produktové feedy a napojení e-shopu.
Nevíte si s nastavením rady, nebo na to prostě nemáte čas? Napište nám na info@conviu.cz — napojení dodavatelů i tvorbu feedů pro vás rádi nastavíme.