Loader

Zakázky

zpět

Popis formátu 2HCS 3.0 pro import zakázek z eshopů

Autor Tomáš Halász
Tomáš Halász pro Zakázky neděle, 29. březen 2026 0 komentářů

Trynx ERP - Import zakázek z e-shopu (2HCS 3.0)

Dokumentace pro implementaci API endpointu na straně e-shopu, ze kterého Trynx ERP stahuje objednávky.

Princip fungování

  1. Trynx volá e-shop — periodicky nebo na pokyn uživatele stáhne XML se seznamem nových objednávek
  2. Import dat — Trynx zpracuje XML, vytvoří zakázky, partnery a položky ceníku
  3. Potvrzení — po úspěšném importu Trynx volá potvrzovací endpoint, aby e-shop označil objednávky jako odeslané

Autentizace

Trynx se autentizuje tokenem v URL. Token je nakonfigurován v nastavení e-shopu v Trynx.

Formát URL:

GET {base_url}/{token}{import_script}

Příklad:

GET https://eshop.example.com/a1b2c3d4e5/api/orders/new
  • base_url = https://eshop.example.com
  • token = a1b2c3d4e5
  • import_script = /api/orders/new

Endpoint pro stažení objednávek

Request

GET {base_url}/{token}{import_script}

Response

  • Content-Type: application/xml nebo text/xml
  • Encoding: UTF-8
  • Kořenový element: <zakazky>

Endpoint musí vracet pouze nové, dosud neodeslané objednávky. Po potvrzení (viz níže) by je již neměl vracet.

XML formát objednávek

Minimální příklad

<?xml version="1.0" encoding="UTF-8"?>
<zakazky>
    <zakazka>
        <cis_obj>OBJ-2026-001</cis_obj>
        <dat_vyt>2026-03-29</dat_vyt>
        <cas_vyt>14:30:00</cas_vyt>
        <z_pcena>1000.00</z_pcena>
        <z_pcenas>1210.00</z_pcenas>
        <mena>CZK</mena>
        <platba>Dobírka</platba>
        <preprava>PPL</preprava>

        <nazev>Jan Novák</nazev>
        <ulice>Hlavní 123</ulice>
        <psc>11000</psc>
        <mesto>Praha</mesto>
        <stat>CZ</stat>
        <email>jan@novak.cz</email>
        <telefon>+420123456789</telefon>

        <tbl_zakobs>
            <tbl_zakob>
                <ident_ci>PROD-001</ident_ci>
                <nazev>Widget A</nazev>
                <pocet_mj>2</pocet_mj>
                <pcena_mj>500.00</pcena_mj>
                <pscena_mj>605.00</pscena_mj>
                <sazba>21</sazba>
            </tbl_zakob>
        </tbl_zakobs>
    </zakazka>
</zakazky>

Prázdná odpověď (žádné nové objednávky)

<?xml version="1.0" encoding="UTF-8"?>
<zakazky>
</zakazky>

Kompletní struktura

Hlavička objednávky <zakazka>

Element Typ Povinný Popis
<cis_obj> string Ano* Číslo objednávky (primární identifikátor)
<cis_zak> string Ne Alternativní číslo zakázky (fallback pokud chybí cis_obj)
<cis_zint> string Ne Interní číslo (fallback pokud chybí cis_obj i cis_zak)
<dat_vyt> date Ano Datum vytvoření objednávky, formát YYYY-MM-DD
<cas_vyt> time Ne Čas vytvoření, formát HH:MM:SS
<z_pcena> decimal Ano Celková cena bez DPH
<z_pcenas> decimal Ano Celková cena s DPH
<zakl_txt3> string Ne Poznámka / popis objednávky
<mena> string Ano Kód měny (CZK, EUR, USD apod.)
<platba> string Ne Název způsobu platby (např. "Dobírka", "Převodem")
<platba_id> string Ne Externí ID platební metody (pro přesné párování)
<preprava> string Ne Název způsobu dopravy (např. "PPL", "Česká pošta")
<preprava_id> string Ne Externí ID dopravce (pro přesné párování)

* Alespoň jedno z cis_obj, cis_zak, cis_zint musí být vyplněno.

Fakturační adresa (v rámci <zakazka>)

Element Typ Povinný Popis
<nazev> string Ano Jméno osoby nebo název firmy
<nazev2> string Ne Název firmy (pokud vyplněno, nazev se bere jako jméno kontaktní osoby)
<ulice> string Ano Ulice a číslo popisné
<psc> string Ano PSČ
<mesto> string Ano Město
<stat> string Ano Kód státu (CZ, SK, DE, AT apod.) nebo název státu
<ico> string Ne IČO firmy (použito pro vyhledání existujícího partnera)
<dic> string Ne DIČ firmy
<email> string Ne E-mailová adresa
<telefon> string Ne Telefon
<osoba> string Ne Jméno kontaktní osoby
<ref_num> string Ne Referenční číslo / kód pobočky

Doručovací adresa (v rámci <zakazka>, pokud se liší od fakturační)

Element Typ Povinný Popis
<k_nazev> string Ne Jméno příjemce
<k_nazev2> string Ne Název firmy příjemce
<k_ulice> string Ne Ulice doručení
<k_psc> string Ne PSČ doručení
<k_mesto> string Ne Město doručení

Položky objednávky <tbl_zakobs><tbl_zakob>

Element Typ Povinný Popis
<ident_ci> string Ano SKU / katalogové číslo produktu
<nazev> string Ano Název produktu
<pocet_mj> decimal Ano Množství
<pcena_mj> decimal Ano Jednotková cena bez DPH
<pscena_mj> decimal Ano Jednotková cena s DPH
<sazba> integer Ano Sazba DPH v procentech (0, 12, 21)

Endpoint pro potvrzení importu

Po úspěšném importu Trynx volá potvrzovací endpoint pro každou importovanou objednávku. E-shop by měl objednávku po potvrzení označit jako odeslanou, aby ji příště nevracel.

Request

GET {base_url}/{token}{confirm_script}

V confirm_script se placeholder id_val nahrazuje číslem objednávky (cis_obj).

Příklad konfigurace:

confirm_script = /api/orders/confirm?order_id=id_val

Výsledné volání pro objednávku OBJ-2026-001:

GET https://eshop.example.com/a1b2c3d4e5/api/orders/confirm?order_id=OBJ-2026-001

Očekávaná odpověď

Trynx nevaliduje odpověď potvrzovacího endpointu. Doporučujeme vracet HTTP 200 s libovolným tělem.

Pravidla zpracování dat

Identifikace zákazníka

Trynx hledá existujícího partnera v adresáři podle:

  1. IČO (<ico>) — pokud je vyplněno, hledá přesnou shodu
  2. Název firmy (<nazev2> nebo <nazev>) — pokud IČO chybí

Pokud partner neexistuje, automaticky se vytvoří nový záznam v adresáři.

Párování platební a dopravní metody

Pro přesné párování platebních a dopravních metod použijte <platba_id> a <preprava_id>. Tyto hodnoty se párují s polem external_id v konfiguraci Trynx.

Priorita párování:

  1. external_id (pokud je <platba_id> / <preprava_id> vyplněno)
  2. Název (<platba> / <preprava>)
  3. Výchozí hodnota ze systémového nastavení

Měna

Element <mena> se páruje s kódem nebo názvem měny v Trynx (tabulka cl_currencies, pole currency_name nebo currency_code). Pokud měna neexistuje, použije se výchozí měna firmy.

Ceník

Produkty se párují podle <ident_ci> (SKU). Pokud produkt v ceníku neexistuje, automaticky se vytvoří. Ceny se při importu aktualizují (lze vypnout v konfiguraci e-shopu).

ParcelShop

Pokud název dopravy obsahuje "ParcelShop - ParcelShop (ID)", Trynx automaticky extrahuje ID výdejního místa z textu v závorce a uloží ho do pole u_dbranch na zakázce.

Příklad: Kompletní objednávka se všemi poli

<?xml version="1.0" encoding="UTF-8"?>
<zakazky>
    <zakazka>
        <!-- Identifikace -->
        <cis_obj>OBJ-2026-042</cis_obj>
        <dat_vyt>2026-03-29</dat_vyt>
        <cas_vyt>09:15:30</cas_vyt>

        <!-- Ceny -->
        <z_pcena>2450.00</z_pcena>
        <z_pcenas>2964.50</z_pcenas>
        <zakl_txt3>Urgentní objednávka - doručit do pátku</zakl_txt3>

        <!-- Platba a doprava -->
        <mena>CZK</mena>
        <platba>Převodem</platba>
        <platba_id>BANK_TRANSFER</platba_id>
        <preprava>PPL</preprava>
        <preprava_id>PPL_STANDARD</preprava_id>

        <!-- Fakturační adresa -->
        <nazev>Jan Novák</nazev>
        <nazev2>Novák s.r.o.</nazev2>
        <ulice>Průmyslová 456</ulice>
        <psc>10200</psc>
        <mesto>Praha 10</mesto>
        <stat>CZ</stat>
        <ico>12345678</ico>
        <dic>CZ12345678</dic>
        <email>objednavky@novak-sro.cz</email>
        <telefon>+420 777 888 999</telefon>
        <osoba>Jan Novák</osoba>
        <ref_num>POB-01</ref_num>

        <!-- Doručovací adresa -->
        <k_nazev>Jan Novák</k_nazev>
        <k_nazev2>Novák s.r.o. - sklad</k_nazev2>
        <k_ulice>Skladová 789</k_ulice>
        <k_psc>25001</k_psc>
        <k_mesto>Brandýs nad Labem</k_mesto>

        <!-- Položky -->
        <tbl_zakobs>
            <tbl_zakob>
                <ident_ci>WIDGET-A100</ident_ci>
                <nazev>Widget A - základní</nazev>
                <pocet_mj>5</pocet_mj>
                <pcena_mj>200.00</pcena_mj>
                <pscena_mj>242.00</pscena_mj>
                <sazba>21</sazba>
            </tbl_zakob>
            <tbl_zakob>
                <ident_ci>WIDGET-B200</ident_ci>
                <nazev>Widget B - prémiový</nazev>
                <pocet_mj>3</pocet_mj>
                <pcena_mj>450.00</pcena_mj>
                <pscena_mj>544.50</pscena_mj>
                <sazba>21</sazba>
            </tbl_zakob>
            <tbl_zakob>
                <ident_ci>SLUZBA-MONTAZ</ident_ci>
                <nazev>Montáž</nazev>
                <pocet_mj>1</pocet_mj>
                <pcena_mj>100.00</pcena_mj>
                <pscena_mj>121.00</pscena_mj>
                <sazba>21</sazba>
            </tbl_zakob>
        </tbl_zakobs>
    </zakazka>
</zakazky>

Poznámky k implementaci

  • Endpoint musí vracet pouze nové objednávky, které ještě nebyly potvrzeny
  • Trynx detekuje duplicity podle čísla objednávky (cis_obj) — pokud zakázka se stejným číslem již existuje, import ji přeskočí
  • Doprava a platba se v Trynx mohou automaticky přidat jako položky zakázky (pokud mají přiřazenou položku ceníku)
  • Desetinná čísla používají tečku jako oddělovač (ne čárku)
  • Všechny textové hodnoty mohou být obaleny v CDATA sekcích
Značky
Návody

Kategorie

Blog Blog(37) Faktury Faktury(11) Helpdesk a všeználek Helpdesk a všeználek(2) Obecné Obecné(5) Objednávky Objednávky(0) Sklad Sklad(6) Zakázky Zakázky(1)

Oblíbené články

úterý, 24. březen 2026
Faktury vydané
úterý, 24. březen 2026
Uzávěrky DPH

Oblíbené značky

Blog Blog faktury faktury Návody Návody Popis funkcí Popis funkcí

Poslední komentáře

30. listopad 2025
3. září 2024
11. červen 2024
21. květen 2024
10. září 2019