MyÚčto MyÚčto.cz Manuál
Stáhnout PDF Zpět na hlavní stránku

38. E-shop

Cesta: Zboží → E-shop *(poslední položka sekce Zboží, viditelná jen když je v Nastavení zapnutý modul Sklad)*

Modul E-shop rozšiřuje skladovou kartu zboží (Zboží → Skladové karty) o vše, co potřebuješ pro prodej přes e-shop: vícejazyčný popis a SEO, zařazení do kategorií a označení štítky, typované parametry/atributy, poplatky (autorský, recyklační…), cenotvorbu odvozenou z nákupní ceny ve více měnách, dodavatele zboží a hromadný import. Stránka /eshop obsahuje číselníky, nastavení a správu hlavních produktů s variantami. Obsah jednotlivého zboží upravuješ na kartě konkrétní položky v editoru skladové karty (záložky „Jazyky", „Kategorie & štítky", „Parametry", „Ceny", „Dodavatelé", „Přílohy").

Tlačítko Uložit v editoru zapíše základní údaje, e-shopový obsah, ceny, akční ceny a dodavatele jako jeden celek. Pokud některá z těchto částí neprojde kontrolou, neuloží se ani ostatní rozpracované změny. Když tutéž kartu mezitím uloží jiný uživatel, editor změnu odmítne jako konflikt a ponechá rozepsané hodnoty ve formuláři, aby je šlo porovnat s aktuálním stavem.

Při přepnutí na jinou stránku editor upozorní na dosud neuložené změny. Spodní lišta s akcemi Uložit a Zrušit zůstává viditelná i při dlouhém formuláři. Záložky mají stav v URL, ovládají se také šipkami vlevo/vpravo a aktivní záložka se na telefonu automaticky posune do viditelné části lišty.

Záložka Přílohy má vlastní stav ukládání. Nahrání, změna pořadí, nastavení hlavního obrázku, exportu i smazání se ukládají okamžitě a nejsou součástí tlačítka Uložit pro zbytek karty.

Kapitola má dvě části: § 38.1–34.7 popisují číselníky a import na stránce /eshop, § 38.8–34.10 pak cenotvorbu a dodavatele, které se zadávají přímo na kartě zboží. Číselník jazyků je popsaný samostatně v § 38.13. Pokud tě zajímá jen nacenění katalogu, začni § 38.8.

Poznámka

Karta zboží nemusí mít skladový stav. Pokud u položky vypneš příznak „Skladová položka" (is_stocked = 0), karta funguje bez jediné příjemky — jen se nacení a popíše, prodává se přes dodavatele (dropshipping) a skladové množství se nesleduje. To je hlavní důvod, proč e-shopová prezentace žije jako nadstavba nad skladem, ne jako podmínka „napřed naskladni".

Důležité

Kolik smí e-shop nabídnout: skladem mínus rezervováno. U skladové položky se pro e-shop nepočítá holý fyzický stav, ale prodejné množství = *skladem − rezervováno*, kde rezervované je zboží už vyfakturované zákazníkovi a dosud nevydané ze skladu. Díky tomu se stejný kus neprodá dvakrát. Zboží na cestě (objednané u dodavatele, ještě nedodané) se do nabídky záměrně nepromítá. Podrobně § 35.9 Kolik toho vlastně máš.

38.1 Přehled záložek

Stránka /eshop má nahoře vodorovné taby, mezi kterými se přepínáš (stav tabu se ukládá do URL, takže jde odkázat i naback/refresh):

ZáložkaObsah
VýrobciČíselník výrobců/značek zboží
KategorieStrom kategorií e-shopového katalogu
AtributyTypované parametry zboží (barva, rozměr, výkon…) vč. voleb pro výběrové atributy
TagyBarevné štítky zboží
PoplatkyTypy poplatků (autorský, recyklační/PHE…) s vlastní sazbou DPH
BaleníKódy balení (karton, paleta…), které karty používají jako nadřazené jednotky (§ 38.17)
Cenové hladinyHladiny odběratelů (Bronze, Silver, Gold…) s výchozí slevou a pravidly pro produkty, kategorie a výrobce (§ 38.18)
JazykyJazykové mutace, ve kterých vedeš názvy a popisy zboží a kategorií (§ 38.13)
SkladyStejná záložka jako Zboží → Skladové karty → Sklady — sklady patří oběma pohledům
Import zbožíHromadný import/aktualizace karet z XLSX/CSV

Každý číselník (Výrobci, Kategorie, Atributy, Tagy, Poplatky, Balení, Cenové hladiny, Jazyky) má stejný tvar: tabulka existujících záznamů, tlačítko „Nový…" vpravo nahoře a u každého řádku ikony tužky (upravit) a koše (smazat). Editace i mazání jsou dostupné jen uživatelům s právem zápisu — u readonly uživatele akční sloupec zmizí úplně.

38.2 Výrobci

Jednoduchý číselník značek: Kód, Název, Web (odkaz, otevře se v novém okně), Pořadí (řadí výpis v e-shopu), příznak Exportovat (zda se výrobce má zobrazit na e-shopu) a Aktivní/Neaktivní. Kód musí být v rámci firmy jedinečný.

Výrobce následně přiřadíš konkrétní kartě zboží v poli „Výrobce" na záložce „Obecné" editoru skladové karty. Import zboží umí výrobce přiřadit podle kódu, ale nezakládá je — pokud kód v souboru neexistuje mezi výrobci, řádek importu skončí chybou s instrukcí založit výrobce nejdřív ručně zde.

38.3 Kategorie

Kategorie tvoří strom (kategorie může mít nadřazenou kategorii, ta svou vlastní atd.) — v tabulce se odsazují podle hloubky a mají ikonu šipky u podkategorií. Formulář obsahuje:

Sloupec Cesta v tabulce ukazuje interní materializovanou cestu stromem (/12/45/) — slouží k rychlému dohledání podstromu, uživatelsky důležitý je hlavně vizuální odsazený název.

38.3.1 Přesun kategorie

Tlačítko se šipkami u řádku otevře dialog „Přesunout kategorii", kde vybereš novou nadřazenou kategorii (nebo necháš prázdné pro přesun na nejvyšší úroveň). Nabídka vylučuje samotnou kategorii a celý její podstrom — nelze tedy kategorii zacyklit (udělat z ní vlastního potomka). Přesun rovnou přepočítá cestu/hloubku pro celý přesouvaný podstrom.

Kategorie s podřízeným zbožím nebo podkategoriemi nelze smazat — systém nabídne archivaci místo mazání (viz § 38.11).

Konkrétní kartě zboží přiřadíš jednu i více kategorií na záložce „Kategorie & štítky" editoru skladové karty, kde navíc označíš jednu jako hlavní (pro drobečkovou navigaci a kanonickou URL na e-shopu).

38.4 Atributy (parametry)

Atributy jsou typované parametry zboží — na rozdíl od volného textu mají přesně daný datový typ, takže je lze na e-shopu i filtrovat. Formulář nového atributu obsahuje:

38.4.1 Volby atributu (jen typ Enum)

V modálu úpravy atributu je pod základním formulářem sekce „Možnosti/Volby atributu" — tabulka voleb (Kód, Popisek, Pořadí) a formulář pro přidání nové volby. Chování se liší podle toho, zda atribut zakládáš, nebo upravuješ:

Každá volba má svůj Kód (technický, používá se i při párování importu/ API) a Popisek (zobrazovaný text, typicky se z něj kód automaticky odvozuje jako slug — lze ho ale ručně přepsat).

Konkrétní hodnoty atributů (typované vstupy dle datového typu) se zadávají na záložce „Parametry" editoru skladové karty pro každou kartu zvlášť.

38.5 Tagy

Tagy jsou volné barevné štítky zboží (např. „Novinka", „Výprodej", „TOP prodej") — na rozdíl od kategorií a atributů nejsou hierarchické ani typované, slouží jen k vizuálnímu odlišení a filtrování na e-shopu. Formulář: Kód, Název, Barva (textové pole ve formátu #RRGGBB + barevný picker vedle něj pro pohodlný výběr) a Aktivní. V tabulce vidíš barevný čtvereček u každého tagu, aby bylo na první pohled jasné, jak bude vypadat na e-shopu.

Konkrétní kartě zboží přiřadíš libovolný počet tagů na záložce „Kategorie & štítky" editoru skladové karty.

38.6 Poplatky

Poplatky reprezentují dodatečné zákonné příplatky ke zboží — typicky autorský poplatek nebo recyklační poplatek (PHE) za elektrozařízení. Formulář: Kód (interní, např. copyright, recycling), Název, Sazba DPH (výběr z číselníku sazeb DPH, nebo „Bez DPH" — poplatek tak může mít jinou sazbu než samotné zboží) a Aktivní.

Konkrétnímu zboží pak přiřadíš konkrétní částku poplatku (v dané měně, s příznakem, zda je částka „s DPH") přímo na kartě zboží. Poplatek s navázaným zbožím nelze smazat, jen archivovat.

Tip

Recyklační poplatek (PHE) je u elektrozařízení a baterií ze zákona povinný a musí být na e-shopu viditelně uveden odděleně od ceny zboží — proto je namodelovaný jako samostatný typ poplatku s vlastním režimem DPH, ne jako součást prodejní ceny.

38.7 Import zboží

Záložka Import zboží zakládá a aktualizuje skladové karty z CSV nebo XLSX do 50 MB. Soubor se uloží s kontrolním součtem; validace a zápis běží na pozadí jako samostatné úlohy. Průběh a výsledky zůstávají v historii úloh.

38.7.1 Postup

  1. Vyber soubor. U CSV nastav oddělovač a kódování UTF-8, Windows-1250 nebo ISO-8859-2; u XLSX zvol list. Náhled ukáže hlavičku a první řádky.
  2. Namapuj sloupce na údaje karty. Zvol identitu podle SKU, interního ID nebo externího ID v pojmenovaném zdroji. U externího ID se existující karta nehledá náhradně podle shodného SKU.
  3. Vyber režim zakládání, aktualizace nebo obojí. Urči zachování či vymazání prázdných hodnot. Mapování a pravidla lze uložit jako verzovaný profil pro další soubor.
  4. Spusť náhled. Úloha ověří celý soubor a uloží rozdíly před zápisem. Report je stránkovaný a rozlišuje připravené řádky, řádky beze změny, chyby a konflikty.
  5. Potvrď aplikaci připravených řádků. Samostatná úloha zapisuje po dávkách a ukazuje průběh. Chybné řádky se nezapisují; oprav je ve zdroji a vytvoř nový náhled.
  6. Obsahuje-li import adresy médií, navazující úloha je stáhne až po úspěšném zápisu karet. Průběh a chyby jednotlivých adres jsou vidět ve stejném reportu importu.

38.7.2 Předvolby ABRA Flexi a POHODA

Předvolba pouze vyplní mapování podporovaných sloupců. Nastavení můžeš před náhledem ručně upravit stejně jako běžný profil.

ABRA Flexi - ceník v CZK (CSV)

Předvolba načítá cenaZaklBezDph jako cenu v CZK bez DPH. Použij ji pro korunový ceník; u jiné měny toto cenové pole nemapuj a ceny nastav samostatně.

  1. V API použij evidenci cenik, filtr (exportNaEshop=true) a formát .csv.
  2. Vyžádej detail custom:kod,nazev,eanKod,cenaZaklBezDph,skladove,exportNaEshop,popis, kódování UTF-8 a oddělovač středník. Parametr ABRA Flexi se v URL píše delimeter=%3B.
  3. Nahraj CSV a zvol předvolbu ABRA Flexi - ceník v CZK.
/c/FIRMA/cenik/(exportNaEshop=true).csv?detail=custom:kod,nazev,eanKod,cenaZaklBezDph,skladove,exportNaEshop,popis&limit=0&encoding=utf-8&delimeter=%3B

Předvolba mapuje kod, nazev, eanKod, cenaZaklBezDph, skladove, exportNaEshop a popis. Hlavička byla ověřena proti veřejnému DEMO API ABRA Flexi. Soubor z konkrétní zákaznické instalace a konkrétní verze ERP ověřen nebyl. Podrobnosti popisuje oficiální návod ABRA Flexi pro napojení e-shopu a dokumentace podporovaných formátů.

POHODA - tabulka zásob (XLSX)

  1. Otevři Sklady > Zásoby a v tabulce vyber Export tabulky.
  2. Do exportu zařaď přesně sloupce Kód, Název, M. j. a Čár. kód. Výběr lze v POHODĚ uložit jako šablonu.
  3. Zvol XLSX, identifikátory ponech jako text, nahraj první list a použij předvolbu POHODA - tabulka zásob.

POHODA předvolba záměrně neimportuje ceny, DPH ani skladové stavy. Přesné názvy čtyř sloupců vycházejí z oficiální dokumentace uživatelského rozhraní. Export z konkrétní verze POHODY ověřen nebyl. Postup exportu a ukládání šablon popisuje oficiální návod POHODA; názvy polí jsou v podrobném nastavení zásob.

38.7.3 Sloupce souboru

Názvy a pořadí sloupců jsou volitelné, jejich význam určuje mapování. SKU a textové EAN zachovávají úvodní nuly. V XLSX proto identifikátory ukládej jako text; číslice odstraněné už tabulkovým editorem nelze obnovit.

ÚdajVýznam
SKUKatalogové číslo, nejvýše 50 znaků; povinné při zakládání nové karty
NázevPovinný pro novou kartu, nejvýše 255 znaků
Jednotka a EANJednotka má výchozí hodnotu ks, EAN zůstává textem
Prodejní cena v CZKPevná cena bez DPH, například 1234.50 nebo 1 234,50; ostatní měny zůstávají zachované
Typ, DPH a minimumTyp zboží/materiál/výrobek, ID existující sazby DPH a minimální množství
VýrobceKód nebo ID existujícího výrobce dané firmy
Aktivita a exportLogická hodnota 1/0, ano/ne, true/false nebo yes/no
Hmotnost, záruka a dodáníCelá nezáporná čísla v gramech, měsících a dnech
Kategorie, štítky, překlady, parametry a poplatkyPokročilé sloupce s JSON seznamy odpovídajícími údajům karty
Měnové cenyJSON seznam cenových řádků; nelze současně mapovat jednoduchou CZK cenu a měnové ceny
Adresy médiíJSON seznam nejvýše 10 veřejných HTTPS adres obrázků nebo dokumentů pro jednu kartu

38.7.4 Chování importu

38.8 Cenotvorba

Cesta: Zboží → Skladové karty → (karta) → záložka „Ceny"

Zatímco stránka /eshop drží číselníky, samotná cena zboží se rodí na kartě konkrétní položky. Prodejní cena přitom není hodnota, kterou prostě zadáš — je to výsledek výpočtu, který systém přepočítává z nákupní ceny.

Důležité

MyÚčto má dva oddělené cenové subsystémy a nemíchají se. Jednoduchý Ceník (§ 96.1.5) je určený pro fakturaci služeb a umí ceny per zákazník. Sklad + E-shop má vlastní cenotvorbu odvozenou z nákupní ceny, popsanou zde. Po zapnutí modulu Sklad Ceník z menu zmizí — ceny se mezi nimi nepřenášejí.

38.8.1 Jak cena vzniká

Řetěz má pět kroků:

#KrokKde se nastavuje
1Nákupní cena v CZK (nákladová báze)pole „Cenová báze" na záložce Obecné + skladové pohyby / dodavatelé
2Přirážka % nebo fixní cenazáložka Ceny, sloupce „Režim" a „Přirážka % / Fixní cena"
3Přepočet do cílové měny kurzemautomaticky z kurzovního lístku
4Zaokrouhlenízáložka Ceny, sloupec „Zaokrouhlení"
5Výsledná cena (bez DPH)sloupec „Výsledná cena" — jen ke čtení
nákupní cena (CZK)
        │
        ├── režim Přirážka % ──→ × (1 + přirážka/100) ──→ ÷ kurz (cizí měna)
        │                                                        │
        └── režim Fixní cena ────────────────────────────────────┤
                                                                 ▼
                                                         zaokrouhlení
                                                                 │
                                                                 ▼
                                                    výsledná cena bez DPH

Výpočet používá přesnou desetinnou aritmetiku; zaokrouhlení se aplikuje na výslednou cenu.

38.8.2 Nákupní cena — cenová báze

Pole „Cenová báze" na záložce „Obecné" určuje, odkud systém vezme nákupní cenu, ze které se počítá přirážka:

Cenová bázeOdkud bere nákupní cenuKdy ji použít
Vážený průměrPrůměrná pořizovací cena skladových zásob (Σ hodnota ÷ Σ množství napříč všemi sklady)Výchozí volba pro běžné skladové zboží — cena se plynule přizpůsobuje nákupům
Poslední nákupJednotková cena z poslední zaúčtované příjemkyKdyž se nákupní ceny rychle mění a chceš marži počítat z aktuální hladiny, ne z historického průměru
RučníNákupní cena preferovaného dodavatele ze záložky DodavateléZboží bez skladu (dropshipping) nebo když se řídíš ceníkem dodavatele, ne skutečnými nákupy

Podrobnosti o tom, jak se vážený průměr počítá při příjmu a výdeji, jsou v § 35.3 Oceňování zásob.

Pokud zvolený zdroj nákupní cenu nevrátí (např. „Vážený průměr" u karty bez jediné příjemky), systém zkusí náhradní zdroje v pořadí:

zvolená báze → poslední nákup → preferovaný dodavatel

Teprve když selžou všechny tři, zůstane prodejní cena prázdná (). Nákupní cena nula nebo záporná se nepočítá jako platná — přirážka z nulového nákladu nedává smysl, takže se pokračuje dalším zdrojem v řetězu.

Poznámka

Díky záložnímu řetězu funguje karta se „skladovou" bází i před první příjemkou — nacení se podle dodavatele a jakmile naskladníš, přepne se automaticky na skutečná skladová data.

38.8.3 Přirážka vs. marže — nepleť si je

Systém nabízí přirážku i cílovou marži. Každý režim počítá procento z jiného základu:

Přirážka 30 % tedy neznamená marži 30 %. Nákup 1 000 Kč + 30 % přirážky = prodej 1 300 Kč, hrubý zisk 300 Kč, ale marže je 300 ÷ 1 300 = 23,1 %.

Přirážka % (zadáváš)Marže % (dostaneš)Chceš marži %Zadej přirážku %
109,11011,11
2016,71517,65
2520,02025,00
3023,12533,33
4028,63042,86
5033,34066,67
10050,050100,00

Vzorce pro přepočet:

Tip

Když ti dodavatel nebo konkurence mluví o „rabatu", myslí zpravidla slevu z doporučené ceny, tedy ještě třetí veličinu. Než si nastavíš přirážky napříč katalogem, ujasni si, které z těch tří čísel vlastně máš — u velkých katalogů je omyl v tomhle bodě dražší než cokoli jiného.

Upozornění

Cílová marže musí být alespoň 0 % a menší než 100 %. Cena se počítá jako nákup ÷ (1 − marže / 100). Nákup 100 Kč a marže 25 % dají 133,33 Kč. Skutečný zisk dále ovlivňují akční ceny, slevy a dodatečné náklady.

38.8.4 Cenové profily, pravidla a obchodní kurzy

V Zboží → Cenová pravidla nastavíš profil pro jednu měnu: přirážku nebo cílovou marži, zaokrouhlení, zdroj obchodního kurzu a jeho maximální stáří. Pravidlo přiřadí profil konkrétní kartě, kategorii, výrobci, dodavateli nebo celé firmě. Přednost má karta, potom kategorie a výrobce, dodavatel a nakonec výchozí pravidlo. Ve stejné úrovni rozhoduje vyšší priorita, při shodě dříve založené pravidlo.

Na cenovém řádku karty zapni Cenová pravidla. Výpočet pak přebírá profil; ruční přepis ceny má nadále přednost. Bez této volby zůstává lokální nastavení cenového řádku. Samotná změna profilu nezaloží kartám chybějící měnové řádky.

Obchodní kurzy mají měnu, datum, zdroj a hodnotu v CZK za jednotku měny. Jsou oddělené podle firmy od účetního kurzovního lístku. Profil určuje povolené stáří; chybějící nebo starý kurz je chyba, nepřepočítá cenu na nulu. Změna profilu, pravidla či kurzu spustí úlohu na pozadí pro existující cenové řádky. Průběh je vidět na stránce i v historii úloh. Uložení beze změny další běh nevytváří. Běh používá uložená pravidla a kurzy; změněná karta dostane nový přepočet. Historické doklady si zachovávají původní ceny a kurzy.

Správa i čtení profilů vyžadují právo na zápis e-shopu a skladových karet, protože obsahují nákladové a maržové nastavení.

38.8.5 Cenová matice

Záložka Cenová matice v e-shopu porovná ceny vybraných karet po měnách. Vyber karty a měny a vytvoř náhled. Náhled i následné použití změn běží jako úlohy na pozadí s průběhem a výsledkem po jednotlivých kartách.

U cen vidíš náklad, výslednou cenu, marži a použitý kurz nebo pravidlo. Výsledek lze filtrovat podle stavu, měny, chybějící ceny, ruční výjimky nebo odchylky od původní ceny. Hranici odchylky nastavíš před výpočtem náhledu.

Jednotlivou cenu lze uzamknout, nastavit jako pevnou, vrátit pod pravidla nebo odstranit pro danou měnu. Změny se zapíší až po potvrzení hotového náhledu. Konfliktní kartu oprav a zahrň do nového náhledu.

CSV původního nebo navrženého stavu umožní úpravy mimo aplikaci a zpětné načtení. Zachovej hlavičku, identifikátor karty a měnu. Zpětné načtení opět vytvoří náhled, který je nutné potvrdit. Jeden soubor může mít nejvýše 50 MB a 90 000 cenových řádků. Přístup vyžaduje právo zápisu e-shopu i skladových karet, protože matice zobrazuje také interní náklady.

38.8.6 Záložka „Ceny"

Záložka rovnou připraví řádek pro každou aktivní prodejní měnu. Prázdné řádky se neukládají. Ikonou koše odstraníš uloženou cenu; aktivní měna zůstane připravená k novému vyplnění. Dříve uložené ceny neaktivních měn jsou označené a zůstávají viditelné.

SloupecVýznam
MěnaKód měny podle ISO 4217 (3 písmena, např. CZK, EUR) — jedinečný v rámci karty
RežimPřirážka %, Cílová marže % nebo Fixní cena (pevná částka)
Přirážka % / Fixní cenaHodnota podle zvoleného režimu — pole se přepíná automaticky
ZaokrouhleníBez / na haléře / desetihaléře / půlkoruny / koruny / na 9 na konci (§ 38.8.5)
RučníZafixuje cenu — přepočet ji nepřepíše
Výsledná cenaDopočtená cena bez DPH — jen ke čtení
KurzKurz použitý při posledním přepočtu (u CZK prázdný)

Tlačítko „Přepočítat" nejdřív uloží aktuální nastavení řádků a teprve pak spustí výpočet — nemusíš tedy ukládat zvlášť.

Důležité

Řádek v CZK má zvláštní postavení: zrcadlí se do prodejní ceny skladové karty, a tím i do výchozí ceny na řádku faktury. Ostatní měny slouží jen e-shopové prezentaci a do fakturace nevstupují. Když kartě CZK řádek nezaložíš, prodejní cena karty zůstane na té hodnotě, kterou jsi zadal ručně (nebo naimportoval) — cenotvorba ji nebude aktualizovat.

Ruční přepis vyřadí řádek z automatického dopočtu a chová se dvěma způsoby podle toho, co je v hodnotovém poli:

Odškrtnutím „Ruční" se řádek vrátí do automatického režimu a nejbližší přepočet cenu přepíše.

Sloupec „Výsledná cena" zůstane prázdný () ve dvou situacích:

PříčinaCo s tím
Chybí nákupní cena — žádný zdroj v záložním řetězu nic nevrátilNaskladni příjemkou, nebo doplň preferovaného dodavatele s nákupní cenou
Chybí kurz — v kurzovním lístku není kurz dané měnyDoplň kurz (§ 38.8.6) a spusť přepočet

38.8.7 Zaokrouhlení

Zaokrouhluje se až úplně nakonec, na výslednou cenu bez DPH, matematicky (půlka nahoru). Pro dopočtenou cenu 1 035,7335 Kč dopadnou režimy takto:

RežimVýsledekPoznámka
Bez1 035,73Jen normalizace na haléře
Na haléře (0,01)1 035,73Totožné s „Bez"
Na desetihaléře (0,10)1 035,70
Na půlkoruny (0,50)1 035,50
Na koruny (1)1 036,00Nejčastější volba pro běžný retail
Na 9 na konci1 039,00Psychologická cena — nejbližší celá koruna končící devítkou

Režim „Na 9 na konci" zaokrouhlí nejdřív na celé koruny a pak vybere nejbližší číslo končící devítkou; při stejné vzdálenosti volí nahoru. Nejnižší cena, kterou tenhle režim vytvoří, je 9 Kč.

Tip

Zaokrouhlení nastavuj per měnu. „Na 9 na konci" dává skvělý smysl u korunových cen, ale u eurových řádků často vyrobí zbytečně hrubý skok — tam bývá vhodnější „Na haléře" nebo „Na desetihaléře".

38.8.8 Cizí měny a kurzy

U řádku v cizí měně systém převede nákupní cenu v CZK kurzem do cílové měny a až pak aplikuje přirážku a zaokrouhlení.

Příklad: nákupní cena 812,34 Kč, přirážka 27,5 %, kurz EUR 25,30 Kč:

812,34 ÷ 25,30 = 32,108300 EUR   (nákup v EUR)
32,108300 × 1,275 = 40,938082    (+ přirážka 27,5 %)
zaokrouhlení „Na haléře"    →    40,94 EUR

Marže tedy zůstává stejná jako v CZK, ale eurová cena plave s kurzem — při posílení koruny sama klesá.

Důležité

Kurz se bere výhradně z kurzovního lístku v databázi, nikdy se nestahuje živě z ČNB — přepočet ceny nesmí záviset na dostupnosti cizí služby. Použije se nejbližší kurz s datem ≤ dnešek. Když pro danou měnu není v lístku žádný kurz, cena se nedopočte vůbec (zůstane prázdná) — cena se nikdy nespočítá z odhadnutého nebo nulového kurzu.

38.8.9 Kdy se cena přepočítá

Přepočet spouští aplikace při zápisu ceny nebo prostřednictvím trvalé úlohy:

UdálostPřepočet
Uložení cenových řádků (záložka Ceny)✅ automaticky
Kliknutí na „Přepočítat"✅ vynuceně
Uložení dodavatelů (záložka Dodavatelé)✅ automaticky
Uložení karty zboží✅ automaticky
Zaúčtování nebo storno skladového dokladuAutomaticky ve frontě pro dotčené karty
Import změněných kurzůAutomaticky ve frontě pro dotčené firmy
Hromadné přecenění kataloguTlačítkem v přehledu úloh

Průběh najdeš v Úlohách katalogu. Úloha ukazuje stav a počet dokončených položek. Po chybě ji lze opakovat od poslední dokončené dávky. Zrušení zastaví další dávky, ale již uložené ceny ponechá. Pevné ceny zůstávají pevné. Přepočet na pozadí vyžaduje běžící plánovač s úlohou cron-catalog-worker.

Poznámka

Akčních cen (§ 38.8.9) se přepočet netýká — je to zadaná částka, ne odvozená hodnota. Jejich platnost naopak řídí čas a počet kusů automaticky, bez jakéhokoli přepočtu.

38.8.10 Co cena obsahuje — DPH a poplatky

38.8.11 Akční ceny

Cesta: Zboží → Skladové karty → (karta) → záložka „Ceny" → sekce „Akční ceny"

Akční cena je dočasná sleva položená nad standardní cenou. Standardní cenotvorba (přirážka, přepočet měn, zaokrouhlení) běží dál beze změny — akce jen po dobu své platnosti přebije výsledek. Jakmile akce skončí, cena se sama vrátí na standardní hladinu; není potřeba nic ručně vracet.

Akce má tři omezení a každé z nich je nepovinné:

OmezeníPolePrázdné znamená
Časové okno„Platí od" / „Platí do"bez omezení (i jen jedna strana)
Počet kusů„Počet kusů" (+ číslo u volby *Omezený počet*)výchozí je *Do vyprodání zásob*
Akční cena„Akční cena"povinná — to je jádro akce

Tři režimy množstevního stropu

1. Do vyprodání zásob *(výchozí)* — akce platí, dokud je zboží skladem, a nejvýš na tolik kusů, kolik je právě na skladě. Strop se neodečítá: čte se živě ze skladu, takže doskladněním akci znovu „nabiješ".

*Příklad:* prodáváš termosku za 890 Kč a chceš ji vyprodat za 690 Kč. Na skladě je 12 ks. Založíš akci 690 v režimu Do vyprodání zásob bez data. Prvních 12 ks se prodá za 690 Kč; jakmile stav klesne na nulu, faktury se zase nacení na 890 Kč. Když ti dorazí dalších 5 ks, akce se sama znovu rozjede — pro trvalé ukončení akci vypni (odškrtni „Aktivní") nebo smaž.

2. Omezený počet kusů — pevný rozpočet („prvních N kusů"). Prodej ho odečítá a doskladnění ho neobnoví. Aplikace vyčerpané množství dopočítává z vystavených faktur dané karty a měny v období akce; storno, smazání faktury i dobropis rozpočet zase uvolní.

*Příklad:* uvádíš novinku a chceš dát prvních 100 ks za 1 490 Kč místo 1 990 Kč. Založíš akci 1490, režim Omezený počet kusů, počet 100. Sloupec „Zbývá" ti průběžně ukazuje, kolik kusů z rozpočtu zbývá; po stotisícím kusu se akce označí jako Vyčerpaná a nové faktury se nacení na 1 990 Kč, i kdyby na skladě leželo dalších 300 ks.

3. Bez omezení počtu — žádný množstevní strop. Hodí se pro akci, kterou řídíš výhradně kalendářem, nebo pro zboží bez skladové evidence (dropshipping, is_stocked = 0), kde by režim „do vyprodání zásob" znamenal nulu.

*Příklad:* letní sleva na službu montáže od 1. 7. do 31. 8. Založíš akci s cenou 990, „Platí od" 1. 7., „Platí do" 31. 8. a režim Bez omezení počtu. Celé dva měsíce se fakturuje 990 Kč bez ohledu na počet zakázek, 1. 9. se cena sama vrátí na standardní hladinu.

Časové okno

Datum „Platí od" i „Platí do" jsou včetně daného dne a obě jsou nepovinná:

Tip

Kombinace „jen do" + režim Do vyprodání zásob je nejběžnější výprodej: *„sleva do konce měsíce, nebo do vyprodání zásob — co nastane dřív"*.

Několik akcí najednou

Na téže kartě a měně smí platit víc akcí současně — sezónní i produktové kampaně se běžně vrství. Vyhrává nejnižší platná cena (při shodě novější záznam), takže zákazník vždy dostane tu nejlepší. Akce, která by byla dražší než standardní cena, se ignoruje — po snížení běžné ceny tedy stará „akce" zboží nezdraží.

Když strop nestačí na celý řádek

Uplatnění je vše nebo nic per řádek dokladu. Když z akce zbývá 3 ks a ty fakturuješ 5 ks, míchaná jednotková cena by rozbila vztah *cena × množství = základ* a na faktuře by se nedala vysvětlit. Aplikace proto:

  1. zkusí další akci v pořadí (dražší akce s volnějším stropem je pořád lepší než plná cena),
  2. a když ani ta nestačí, nacení celý řádek standardní cenou.

Chceš-li v takové situaci prodat část akčně, rozděl řádek na dva — 3 ks s akční cenou a 2 ks se standardní.

Stavy akce

Sloupec „Stav" ti u každého řádku řekne, co se s ním právě děje:

StavVýznam
Probíháakce se právě uplatňuje
Naplánovaná„Platí od" je v budoucnosti
Skončila„Platí do" už je v minulosti
Vypnutáodškrtnuté „Aktivní" (akce se schovává, ale nemaže)
Vyčerpanádošel množstevní strop, nebo zboží není skladem
Poznámka

Akční cena je bez DPH, stejně jako celá cenotvorba, a platí vždy jen pro jednu měnu — pro akci v eurech založ druhý řádek s EUR. Na rozdíl od standardní ceny se akční cena nepřepočítává ani kurzem, ani přirážkou; je to prostě zadaná částka.

Kde všude se akční cena projeví

Akční cena není jen ozdoba karty — aplikace ji dosazuje všude, kde zboží naceňuje:

Množstevní strop akce se posuzuje v základní jednotce karty: řádek faktury v balení 10 KT po 8 ks čerpá ze stropu 80 ks. Akční cena je vždy za základní jednotku; řádek v balení ji dostane vynásobenou poměrem balení.

38.8.12 Individuální ceny zákazníků

Na záložce Ceny editoru karty pod akčními cenami zadáš konkrétnímu odběrateli vlastní cenu karty: pevnou cenu nebo slevu v % ze standardní ceny. Každý řádek má odběratele, měnu, volitelnou platnost od–do a poznámku a ukazuje výslednou cenu podle dnešní standardní ceny. Ukládá se společným tlačítkem Uložit editoru. Duplikace karty zákaznické ceny nepřenáší.

Která cena platí

Editor faktury nacení skladový řádek pro odběratele, měnu a datum dokladu:

  1. Základ je individuální cena odběratele, pokud je platná k datu dokladu a v měně dokladu.
  2. Jinak rozhoduje cenová hladina odběratele, pokud ji má přiřazenou a je aktivní (§ 38.18).
  3. Jinak je základem standardní cena z cenotvorby.
  4. Akční cena se použije jen tehdy, když je nižší než tento základ. Zákazník tak dostane lepší z obou cen.

Odběratel bez individuální ceny a bez cenové hladiny se naceňuje přesně jako dosud. Změna odběratele nebo měny na faktuře přecení jen řádky, jejichž cenu doplnila aplikace; ručně přepsanou cenu nechá být. Seznam karet a našeptávač dál ukazují standardní (případně akční) cenu bez ohledu na odběratele.

Poznámka

Ceník pro firmy bez skladové evidence (Faktury → Ceník) má vlastní zákaznické ceny položek ceníku. Individuální ceny na skladové kartě s ním nesouvisí — firma se skladem nacení zboží vždy ze skladové karty.

38.9 Dodavatelé zboží

Cesta: Zboží → Skladové karty → (karta) → záložka „Dodavatelé"

Ke kartě zboží můžeš přiřadit libovolný počet dodavatelů — každého s vlastními podmínkami. Slouží ke dvěma věcem: jako podklad pro nákup a jako zdroj nákupní ceny pro cenovou bázi „Ruční".

PoleVýznam
DodavatelVýběr z klientů, kteří mají v adresáři zapnutou roli dodavatele (§ 18)
Kód u dodavateleKatalogové číslo, pod kterým položku vede dodavatel (max 80 znaků) — tiskne se na objednávku a páruje se podle něj ceník
Nákupní cenaCena, za kterou od něj nakupuješ
MěnaMěna nákupní ceny (default CZK)
Dodání (dny)Dodací lhůta — u zboží bez skladu tvoří dostupnost na e-shopu
Skladem (ks)Množství, které dodavatel drží — orientační, needituje tvůj sklad; sčítá se do veličiny U dodavatele (§ 35.9.4)
PreferovanýPřepínač; nejvýš jeden dodavatel na kartu
PoznámkaVolný text (sezónnost, kontakt…)
Poznámka

Tahle záložka je pohled po kartách na tatáž data, která stránka Sklad → U dodavatele ukazuje přes celý katalog — jde o jeden a týž záznam. Kompletní sada polí (minimální odběr, balení, dostupnost, cena platí do, aktivní) i import ceníku jsou popsané v § 35.10 Nabídky dodavatelů. Právě minimální odběr a balení používá návrh doplnění zásob.

38.9.1 Preferovaný dodavatel

Preferovaný dodavatel je ten, jehož nákupní cena se použije při cenové bázi „Ruční" a jako poslední článek záložního řetězu (§ 38.8.2). Je-li jeho cena v cizí měně, převede se do CZK kurzem k danému dni — a chybí-li kurz, nákupní cena z něj nepůjde získat.

Poznámka

Aby se klient v nabídce dodavatelů vůbec objevil, musí mít v adresáři zapnutý příznak dodavatele. Pokud je seznam prázdný, nejdřív roli zapni u příslušných klientů — na kartě zboží se dodavatel založit nedá.

38.9.2 Dropshipping — zboží bez skladu

Vypneš-li na kartě příznak „Skladová položka", karta žije jen z dodavatelů: skladové množství se nesleduje, dostupnost a dodací lhůta se berou od dodavatele a nákupní cena pro cenotvorbu přijde z preferovaného dodavatele. Kombinace „Skladová položka" vypnutá + cenová báze „Ruční" + preferovaný dodavatel s cenou je doporučené nastavení pro dropshipping.

Poznámka

Dropshippingové zboží nákupní modul neobjednává. Návrh doplnění zásob pracuje jen s kartami, které mají vyplněnou minimální zásobu — u zboží bez skladu žádná není a nemá být. Potřebuješ-li takovou položku přesto objednat, založ objednávku ručně.

38.10 Praktické postupy cenotvorby

38.10.1 Nacenění nového skladového zboží

  1. Založ kartu, nech „Skladová položka" zapnutou.
  2. Cenová báze → Vážený průměr.
  3. Naskladni příjemkou (tím vznikne nákupní cena).
  4. Záložka Ceny, připravený řádek CZK, režim Přirážka %, hodnota podle cílové marže (viz převodní tabulka v § 38.8.3), zaokrouhlení Na koruny nebo Na 9 na konci.
  5. „Přepočítat" a zkontroluj sloupec „Výsledná cena".

38.10.2 Nacenění dropshippingového zboží

  1. Vypni „Skladová položka", cenová báze → Ruční.
  2. Záložka Dodavatelé → přidej dodavatele s nákupní cenou, měnou, kódem a dodací lhůtou, označ ho jako Preferovaného.
  3. Záložka CenyCZK s přirážkou → „Přepočítat".

38.10.3 Změna dodavatele nebo jeho ceníku

Po přecenění od dodavatele:

  1. Uprav nákupní cenu na záložce Dodavatelé (u karet s bází „Ruční" se cena přepočte hned po uložení). Přepočet prodejních cen spustí každý zápis nabídky — tedy i její založení a smazání.
  2. Přesouváš-li nákup k jinému dodavateli, přepni u něj přepínač Preferovaný — starého nech v seznamu jako záložní zdroj.

U rozsáhlejšího ceníku se vyplatí hromadný import z XLSX nebo CSV (Sklad → U dodavatele → Import ceníku) — páruje se podle SKU karty a dodavatele, běží v náhledu s výpisem změn z → na a nikdy nic nemaže ani nezakládá. Formát souboru a chování popisuje § 35.10.2; tamtéž je i upozornění, že v tomto vydání tlačítko importu ještě nedoběhne.

38.10.4 Kontrola marže

Cílová marže slouží k nacenění. Pro kontrolu skutečné marže porovnej obě čísla:

Marži pak spočítáš jako (prodej − nákup) ÷ prodej × 100. Pro pravidelnou kontrolu se vyplatí vyexportovat skladové karty a dopočítat ji v tabulkovém procesoru.

38.10.5 Akce a výprodej

Na akční ceny má karta vlastní sekci na záložce „Ceny" — § 38.8.9. Postup:

  1. V sekci „Akční ceny" klikni na „Přidat akci", zadej akční částku a měnu.
  2. Vyplň, čím má být akce omezená: datum („Platí od" / „Platí do"), počet kusů, nebo obojí. Nevyplněné omezení prostě neplatí.
  3. Ulož kartu. Standardní cenu nech být — akce ji přebije jen dokud platí a po skončení se cena sama vrátí zpět.
  4. Zboží v akci si můžeš navíc označit tagem (např. „Výprodej", § 38.5) kvůli filtrování a exportu.
Tip

Starší návod („Fixní cena" + zaškrtnutá „Ruční") už používej jen na trvalou změnu ceny. Pro časově nebo množstevně omezenou slevu je akční cena vždycky lepší — nemusíš si hlídat její konec.

38.11 Mazání vs. archivace

U všech číselníků (výrobci, kategorie, atributy, tagy, poplatky) platí stejné pravidlo: pokud je záznam použitý u nějakého zboží, smazání ho odmítne a zobrazí hlášku, že je „v použití" — řešením je záznam archivovat (zaškrtávátko „Aktivní" ve formuláři vypnout) místo mazání. Archivované záznamy zůstávají v tabulce (zešednou), ale nenabízí se při zakládání nového zboží ani v exportu na e-shop.

38.12 Omezení a tipy

38.12.1 Číselníky a import

Tip

Před prvním importem velkého katalogu spusť náhled (dry-run), projdi sloupec „Jen problémy" a chyby oprav přímo ve zdrojovém souboru — teprve pak spouštěj ostrý import. Ušetříš si tak opakované ruční opravy karet po částečně nepovedeném importu.

38.12.2 Cenotvorba

Ať si nastavíš očekávání správně — tohle cenotvorba v MyÚčto neumí:

Chybějící funkceNáhradní řešení
Cenové hladiny / skupiny zákazníkůCeny per zákazník existují jen v jednoduchém Ceníku pro fakturaci (§ 96.1.5), který se se skladem nekombinuje
Množstevní slevy (od X ks levněji)Samostatná karta pro balení, nebo sleva na dokladu — akční cena umí jen *strop* počtu kusů, ne cenové pásmo
Částečné uplatnění akce v jednom řádkuAkce je vše nebo nic per řádek — rozděl řádek (§ 38.8.9)
Historie cenNení — uchovává se jen aktuální hodnota a datum posledního přepočtu
Automatický feed nákupních cen od dodavateleCeník se importuje ručně z XLSX/CSV (§ 35.10.2), online napojení na dodavatele není
Reporting skutečné maržeRučně z nákupní a prodejní ceny
XML feed pro Heureku / Zboží.czPříznak „Exportovat do e-shopu" je jen označení pro externí systém

38.13 Jazyky

Cesta: E-shop → Jazyky

Číselník jazykových mutací, ve kterých vedeš názvy a popisy zboží a kategorií. Karta zboží na záložce Jazyky rovnou otevře češtinu. Další jazyk vybereš z aktivních jazyků tohoto číselníku; výběr ihned přidá a otevře jeho formulář. Mezi rozepsanými překlady přepínáš jazykovými záložkami. Prázdný připravený český řádek se neukládá, překlad s obsahem vyžaduje také název.

PoleVýznam
KódKód jazyka ve tvaru cs, nebo pt-BR pro regionální variantu. Používá se v datech překladů
NázevJak se jazyk zobrazí v nabídce (Čeština, English)
PořadíŘadí jazyky v nabídce; při shodě rozhoduje kód
Výchozí jazykVýchozí jazyk číselníku. Výchozí smí být jen jeden; editor karty otevírá češtinu
AktivníNeaktivní (archivovaný) jazyk se nenabízí pro nové překlady

Ve formuláři je nahoře rychlá volba nejčastějších jazyků — klepnutím předvyplní kód i název, oboje jde pak přepsat.

Důležité

Kód jazyka, ke kterému už existují překlady, nelze změnit. Překlady jsou na jazyk navázané hodnotou kódu, ne odkazem — přejmenování by je od číselníku odpojilo. Chceš-li jazyk opravdu vyměnit, založ nový a překlady přepiš.

Jazyk s uloženými překlady nejde smazat, jen archivovat. Archivace ho stáhne z nabídky pro nové překlady, ale už uložené texty zůstávají a karta s takovým překladem jde dál uložit.

Poznámka

Při zapnutí modulu dostaneš do číselníku češtinu a všechny jazyky, ve kterých už nějaký překlad existuje. Nová firma, která si sklad zapne později, začíná s prázdným číselníkem. První uložení českého překladu do něj češtinu doplní; další jazyky přidáš v číselníku.

38.14 Varianty a vztahy produktů

Na stránce E-shop v záložce Hlavní produkty vytvoříš společný produkt a připojíš k němu existující skladové karty jako varianty. Hlavní produkt nemá vlastní SKU ani skladovou zásobu. Každá varianta si ponechá své SKU, ceny, skladové pohyby a externí identitu.

Osy variant vybereš z jednohodnotových výčtových parametrů, například velikost a barva. Pro každou variantu zadáš jednu možnost každé osy. Dvě varianty stejného produktu nemohou mít stejnou kombinaci. Parametry určující variantu měň přes hlavní produkt; běžná záložka Parametry jejich změnu odmítne.

Varianta standardně přebírá výrobce a obsah překladů hlavního produktu. V záložce Hlavní produkt na kartě můžeš jednotlivá pole přepnout na vlastní hodnotu. Náhled ukazuje výsledný obsah. Slug zůstává vlastní pro každé SKU. Před odpojením varianty aplikace ukáže obsah, který na kartě zachová, aby odpojením nezmizel převzatý popis ani výrobce.

V záložce Vztahy propojíš příslušenství, náhrady a související zboží. Kopírování obsahových částí mezi více kartami běží jako trvalá úloha s průběhem a výsledkem jednotlivých položek. Změněné karty se nepřepíší potichu, jejich konflikty uvidíš ve výsledku.

38.15 Virtuální sety

Na kartě bez vlastní skladové zásoby otevři Složení setu. Set může obsahovat pevné komponenty i další sety. Konfigurátor navíc nabízí povinné a volitelné skupiny s omezením počtu voleb a měnovými příplatky. Cyklus ve složení systém odmítne. Pro každou měnu lze použít součet cen komponent, procentní slevu nebo pevnou cenu. Výpočet používá aktuální ceny komponent a zvolenou konfiguraci. Set s různými sazbami DPH komponent nelze takto ocenit.

Virtuální set nemá vlastní zásobu a nelze jej přepnout na skladovanou kartu. Pro předem vyrobené balení použij samostatnou kartu výrobku a Kompletaci v modulu Sklad. Kompletace jednou transakcí vydá komponenty a přijme výrobek ve stejné celkové hodnotě. Storno se provádí společně přes kompletaci. Zpětný pohyb, který by změnil ocenění již zkompletovaných komponent, systém odmítne; nejprve stornuj kompletaci nebo proveď korekci po ní.

38.16 Integrační centrum

Cesta: Zboží → Integrace

Integrační centrum propojuje MyÚčto s e-shopem nebo jiným externím systémem. Pro každé propojení založíš připojení: vybereš konektor, přiřadíš místním číselníkům hodnoty externího systému, rozhodneš, kdo je u kterých dat zdrojem pravdy, uložíš přístupové údaje a připojení aktivuješ. Stránka zároveň obsahuje všechny podklady pro vývojáře, který napojení programuje, a přehled provozu.

Každá firma má předem připravené Ukázkové napojení (vzor Shoptet) ve stavu Koncept, předvyplněné z jejích číselníků; vznikne při prvním otevření stránky uživatelem s právem integrace upravovat, a když ho smažeš, znovu se už nezaloží (ručně ho vrátíš tlačítkem Vytvořit ukázkové napojení). Formulář nového připojení je předvyplněný stejnými výchozími hodnotami. Zástupné hodnoty v lomených závorkách, např. <stockId skladu v Shoptetu>, nahraď skutečnými a jako první krok vytvoř secret webhooku. Připojení smažeš tlačítkem Smazat připojení v záhlaví editoru, zmizí i jeho fronty událostí.

Stránka je dostupná jen firmě se zapnutým skladem a uživateli s oprávněním Spravovat integrace e-shopu (ve výchozím nastavení administrátor). Uživatel jen s právem čtení nastavení vidí, ale nemůže ho měnit.

38.16.1 Postup nastavení

Editor připojení je rozdělený do šesti kroků. Nahoře vidíš jejich stav (hotovo, doplnit, nepovinné, po uložení) a klepnutím na krok na něj stránka sjede. Všechno kromě webhooku uložíš jedním tlačítkem Uložit v liště dole. Zahodit změny vrátí formulář do uloženého stavu.

KrokCo v něm nastavíš
1. KonektorS jakým systémem se propojuješ a název připojení
2. MapováníKteré sklady, měny, jazyky a sazby DPH odpovídají hodnotám v externím systému
3. Vlastnictví políU každého pole, jestli pravdu drží MyÚčto, externí systém, nebo rozhoduješ ručně
4. PřístupyPřístupové údaje k externímu systému, pokud je konektor potřebuje
5. WebhookAdresa pro příchozí události, secret a podklady pro vývojáře (až po prvním uložení)
6. AktivaceStav připojení a provozní limity

38.16.2 Konektory

Konektor určuje, s jakým systémem se připojení baví a co od tebe potřebuje. Konektor uloženého připojení už nejde změnit, pro jiný systém založ nové připojení.

KonektorStavK čemu je
Vlastní napojení přes webhook a APIK dispoziciPro vlastní e-shop nebo prostředníka. Externí systém posílá podepsané události na webhook a změny katalogu si stahuje přes API
ShoptetPřipravujemePřímé napojení Shoptetu. Bude mít vlastní příjem webhooků Shoptetu a stahování změn objednávek, na obecnou adresu webhooku se nenapojuje. Zatím ho nelze vybrat
Poznámka

Připojení, které vzniklo dřív, než aplikace začala konektory rozlišovat, může mít konektor, který seznam nezná. Takové připojení dál funguje a jde upravovat. Stránka na to upozorní a mapování, vlastnictví polí i přístupové údaje u něj zadáváš jako JSON bez kontroly podle definice.

38.16.3 Mapování číselníků

Mapování říká, pod jakou hodnotou zná externí systém tvoje sklady, měny, jazyky a sazby DPH. Každý typ má vlastní tabulku: vlevo vybereš místní hodnotu z číselníku firmy, vpravo napíšeš kód nebo ID v externím systému. Řádek přidáš tlačítkem Přidat řádek, odebereš ikonou koše. Hodnotu, kterou nenamapuješ, konektor nepřenáší.

TypMístní hodnotaPříklad hodnoty v e-shopu
SkladyKód skladu (E-shop → Sklady)ID skladu v e-shopu, např. 1
MěnyMěna firmy nebo měna, ve které má zboží prodejní cenuCZK, EUR
JazykyJazyk z číselníku E-shop → Jazykycs, sk
Sazby DPHSazba DPH podle číselníku21 nebo ID sazby

Výběr nabízí jen aktivní hodnoty. Když sklad deaktivuješ nebo jazyk archivuješ, jeho uložené mapování zůstává. Uložení odmítne hodnotu, která ve firmě neexistuje, prázdnou hodnotu v externím systému i stejnou místní hodnotu namapovanou dvakrát. Chyba vždy řekne, u kterého typu a hodnoty je.

Pokročilý režim (přepínač u kroku 2) ukáže mapování i vlastnictví polí jako JSON. Hodí se vývojáři, který nastavení kopíruje mezi prostředími. Při vypnutí režimu se JSON zkontroluje a převede zpět do tabulek; neplatný JSON tabulky nepřepíše. Uložený tvar mapování:

{
  "warehouses": { "HLAVNI": "1" },
  "currencies": { "CZK": "CZK", "EUR": "EUR" },
  "languages": { "cs": "cs" }
}

38.16.4 Vlastnictví polí

U každého pole rozhoduješ, kdo je zdrojem pravdy, když se hodnoty v MyÚčtu a v externím systému liší. Konektor se tím řídí při přenosu změn.

VlastníkCo znamená
MístníPravdou je MyÚčto. Hodnota se posílá do externího systému a jeho změna se nepřevezme
ExterníPravdou je externí systém. Jeho změna přepíše hodnotu v MyÚčtu a MyÚčto ji ven neposílá
RučníNic se nepřepisuje automaticky. Rozdíl se jen nahlásí a rozhodneš o něm ty

Pole jsou seskupená podle oblasti. Výchozí volba je označená štítkem výchozí; pole, které v nastavení chybí, má výchozího vlastníka.

PoleVýchozí vlastníkProč
Kód zboží, název, popis, SEO texty, EAN, výrobce, obrázky, hmotnostMístníKatalog vedeš v MyÚčtu
Prodejní cena, sazba DPHMístníCena a DPH vstupují do účetnictví
Prodejnost kartyMístníAktivace a vyřazení karty
Skladové množstvíMístníSklad vede MyÚčto
Stav objednávky, kontaktní údaje zákazníkaExterníObjednávku zakládá a mění zákazník v e-shopu
Stav úhrady objednávkyMístníÚhradu páruje MyÚčto z banky a pokladny
Stav expediceMístníRezervace a vyskladnění probíhají ve skladu MyÚčta

Příklady:

U vlastního napojení můžeš přidat i vlastní pole, které definice konektoru nezná (např. custom.loyalty_points). Klíč začíná malým písmenem a obsahuje jen a–z, 0–9, tečku a podtržítko.

38.16.5 Přístupové údaje

Přístupové údaje jsou pole, která konektor potřebuje k přístupu do externího systému. Ukládají se šifrovaně a po uložení se už nikdy nezobrazí, ani administrátorovi. U každého pole vidíš jen stav Uloženo nebo Nevyplněno.

Vlastní napojení nabízí nepovinnou Adresu pro odchozí události a Token pro odchozí události. Odchozí doručování zatím nic nespouští, údaje si můžeš připravit dopředu. Secret webhooku s nimi nesouvisí, ten vzniká v kroku 5.

38.16.6 Webhook a podklady pro vývojáře

Krok 5 se zobrazí po prvním uložení připojení. Obsahuje adresu webhooku s tlačítkem Kopírovat, kontrolu připravenosti a podrobný popis kontraktu s ukázkami v curl, PHP a Node.js.

Tlačítko Vytvořit secret vytvoří podpisový klíč webhooku a ukáže ho právě jednou. Ulož ho hned do externího systému. Vytvořit nový secret předchozí klíč okamžitě zneplatní, proto se aplikace nejdřív zeptá.

Webhook přijímá události, jen když je připojení aktivní a má vytvořený secret. Požadavek je POST na adresu webhooku s těmito hlavičkami:

HlavičkaObsah
Content-Typeapplication/json, tělo nejvýše 1 MiB
X-Integration-TimestampUnixový čas odeslání v sekundách; odchylka od času serveru nejvýše 5 minut
X-Integration-Signaturesha256= a hexadecimální HMAC-SHA256 z řetězce časové_razítko.tělo klíčem secret

Podepisuje se přesně odeslané tělo, bajt po bajtu. Když tělo po výpočtu podpisu přeformátuješ, podpis přestane sedět. Ukázka výpočtu v PHP:

$body = json_encode($event, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$timestamp = (string) time();
$signature = 'sha256=' . hash_hmac('sha256', $timestamp . '.' . $body, getenv('WEBHOOK_SECRET'));

Tělo události je JSON objekt s povinnými poli event_id (jednoznačné ID události, nejvýše 190 znaků), entity_type (např. order), entity_id (ID entity v externím systému), event_type (např. order.created) a aggregate_version (celé číslo od 1, s každou změnou entity roste). Další pole se uloží spolu s událostí. Ukázka je objednávka ve stylu Shoptetu převedená do tohoto kontraktu (syntetická data). Skutečný Shoptet náš webhook sám nevolá (podepisuje HMAC-SHA1 v hlavičce Shoptet-Webhook-Signature), takže jde o vzor pro prostředníka nebo vlastní skript:

{
  "event_id": "shoptet-order-2026000123-1",
  "entity_type": "order",
  "entity_id": "2026000123",
  "event_type": "order.created",
  "aggregate_version": 1,
  "payload": {
    "code": "2026000123",
    "status": { "id": -1 },
    "currency": { "code": "CZK" },
    "price": { "withVat": "1210.00", "withoutVat": "1000.00", "vat": "210.00" },
    "paid": false,
    "items": [{ "itemType": "product", "code": "SKU-1001", "amount": "2", "vatRate": "21" }]
  }
}
OdpověďVýznam
202Událost je přijatá do fronty. Při opakovaném doručení stejné události (stejné event_id i tělo) vrátí duplicate: true a znovu ji neuloží
400Tělo není platný JSON objekt nebo chybí či je neplatné povinné pole
401Připojení neexistuje nebo není aktivní, chybí secret, časové razítko je mimo 5 minut nebo nesedí podpis
409Pod stejným event_id už přišla událost s jiným obsahem; změnu pošli s novým event_id
413Tělo je větší než 1 MiB

Opakované doručení je proto bezpečné: když si odesílatel není jistý, že událost dorazila, pošle ji znovu beze změny. O pořadí změn jedné entity rozhoduje aggregate_version, ne čas doručení; pozdě doručená starší verze se při zpracování přeskočí.

Poznámka

Přijaté události čekají ve frontě příchozích událostí. Zapisovat je do katalogu a objednávek bude konkrétní konektor; do té doby je v diagnostice uvidíš jako čekající.

Ověřit podpis a tělo události: ve spodní části kroku 5 vloží vývojář secret, časové razítko a tělo a stránka spočítá očekávanou hodnotu hlavičky X-Integration-Signature, zkontroluje tělo proti kontraktu, porovná podpis z jeho systému a připraví hotový příkaz curl. Výpočet probíhá jen v prohlížeči, secret se nikam neodesílá ani neukládá.

38.16.7 Stahování změn katalogu

Změny katalogu si externí systém stahuje sám přes veřejné API GET /api/v1/catalog/changes. Potřebuje API token s právem číst e-shop (vytvoříš ho v profilu v sekci API tokeny); pokud token není vázaný na jednu firmu, posílá hlavičku X-Supplier-Id.

curl -sS 'https://ucto.example.test/api/v1/catalog/changes?after_cursor=0&limit=250' \
  -H "Authorization: Bearer $API_TOKEN"

Každá změna karty, ceny, obrázku, překladu, zásoby nebo rezervace dostane rostoucí kurzor. after_cursor je poslední zpracovaný kurzor (na začátku 0), limit 1 až 1000. Po každé stránce si systém uloží next_cursor; dokud je has_more true, načte hned další stránku. Položka říká, která karta se změnila (entity_id) a v jaké oblasti (source_area); aktuální data karty se pak načtou přes POST /api/v1/catalog/products/batch. Hodnota tombstone znamená smazanou nebo vyřazenou kartu.

Odpověď 410 znamená, že kurzor je starší než uchovávaná historie změn. Externí systém stáhne celý katalog znovu a pokračuje od minimum_cursor.

38.16.8 Aktivace a provozní limity

StavCo znamená
KonceptNastavuješ. Webhook nic nepřijímá a pro připojení nevznikají odchozí události
AktivníWebhook přijímá události a pro připojení vznikají odchozí události o objednávkách
PozastavenéDočasně vypnuto. Webhook události odmítá, dosavadní fronty zůstávají
ChybaNastaví ho porovnání úplnosti, když najde problém. Po odstranění příčiny spusť porovnání znovu nebo zvol jiný stav

Limit odchozích požadavků za minutu (1 až 6000) určuje, kolik odchozích událostí smí konektor za minutu doručit a chrání API externího systému před přetížením. Uchování provozních záznamů (1 až 365 dní) určuje, po jaké době se z příchozích a odchozích událostí odstraní obsah a změnový feed zapomene starší změny.

38.16.9 Diagnostika, opakování a porovnání úplnosti

Přehled provozu pod editorem ukazuje počty příchozích a odchozích událostí, které čekají, doručené události, trvalé chyby a jejich diagnostické kódy. Obsah zpráv ani přístupové údaje nezobrazuje. Odchozí událost ve stavu trvalé chyby lze po odstranění příčiny vrátit do fronty tlačítkem Opakovat.

Tlačítko Porovnat úplnost projde propojené identity připojení (které externí ID patří ke které místní kartě) a ověří, že místní karty pořád existují. Chybějící hlásí jako neúplné mapování a připojení přepne do stavu Chyba. Porovnání běží na pozadí po dávkách, průběh vidíš v přehledu a pro aktivní připojení se spouští i pravidelně. Obsah externího systému nestahuje ani nemění.

38.16.10 Řešení potíží

PříznakPříčina a řešení
Webhook vrací 401Připojení není aktivní, secret nebyl vytvořen nebo byl vyměněn, hodiny odesílatele se liší o víc než 5 minut, nebo se podepisuje jiné tělo, než se posílá. Ověř podpis nástrojem v kroku 5
Webhook vrací 409Stejné event_id bylo použito pro jinou změnu. Každá změna potřebuje nové event_id
Webhook vrací 400Chybí povinné pole nebo má špatný tvar (např. entity_type s velkými písmeny, aggregate_version 0)
Uložení hlásí, že hodnota ve firmě neexistujeSklad, jazyk nebo měna byly smazány. Oprav nebo odeber řádek mapování
Změnový feed vrací 410Externí systém se dlouho nepřipojil. Musí stáhnout celý katalog znovu
V diagnostice přibývají čekající příchozí událostiUdálosti se přijímají, ale konkrétní konektor je zatím nezpracovává
Připojení je ve stavu ChybaPorovnání úplnosti našlo propojení na neexistující kartu. Oprav propojení a spusť porovnání znovu

38.17 Balení

Číselník Balení drží kódy nadřazených jednotek firmy — například KT Karton, PAL Paleta, BAL Balík. Formulář: Kód (nejvýše 20 znaků bez mezer), Název, Pořadí a Aktivní. Tabulka u každého balení ukazuje, kolik karet ho používá.

Samotný poměr („1 KT = 8 ks") a EAN balení se zadávají na skladové kartě (§ 35.2.6), protože karton jednoho zboží obsahuje jiný počet kusů než karton jiného.

38.18 Cenové hladiny

Cenová hladina seskupuje odběratele, kteří nakupují za stejných podmínek, například Bronze, Silver a Gold. Hladinu přiřadíš odběrateli na jeho kartě (§ 18.2.1). Odběratel bez hladiny patří do hladiny Default a skladové zboží se mu naceňuje standardní cenou přesně jako dosud.

Formulář hladiny: Název, Kód (vyplní se z názvu, nejvýše 50 znaků bez mezer), Výchozí sleva %, Pořadí a Aktivní. Tabulka u každé hladiny ukazuje počet odběratelů a pravidel.

38.18.1 Pravidla hladiny

V detailu hladiny zpřesníš slevu pro konkrétní zboží:

CílCo lze nastavit
Produktsleva v % nebo pevná cena v konkrétní měně
Kategoriesleva v % pro zboží zařazené v kategorii
Výrobcesleva v % pro zboží výrobce

Výjimku pro produkt zadáš i přímo na kartě zboží v záložce Ceny, v sekci Cenové hladiny. Řádek pro každou aktivní hladinu a měnu ukazuje zděděnou cenu a její zdroj (výchozí sleva, kategorie, výrobce). Výjimku uložíš společným tlačítkem Uložit editoru, návratem k zděděné ceně ji odebereš. Pravidla kategorií a výrobců se tím nemění.

38.18.2 Které pravidlo platí

Pro kartu a měnu dokladu se použije první, co platí:

  1. pravidlo produktu,
  2. pravidlo kategorie nebo výrobce karty. Obě mají stejnou váhu, rozhoduje priorita pravidla, při shodě pravidlo pro konkrétní měnu a pak dříve založené pravidlo. Stejné pořadí přednosti platí u cenových profilů v cenotvorbě,
  3. výchozí sleva hladiny, pokud je vyšší než nula.

Pevná cena v jiné měně, než je měna dokladu, se nepoužije. Sleva bez standardní ceny v měně dokladu nemá z čeho počítat a hladina pak cenu neurčí.

Na faktuře má přednost individuální cena odběratele, hladina rozhoduje až po ní a akční cena vyhraje jen tehdy, když je levnější (viz § 38.8.10). U řádku faktury se ukáže, že cenu určila hladina, například „Gold −10 %“.