Loader

Sklad

zpět

Export stavů skladů ve formátu SimpleStore

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

Trynx ERP - Export stavů skladu na e-shop (Simple Store)

Dokumentace pro implementaci API endpointu na straně e-shopu, který přijímá aktuální stavy skladu z Trynx ERP.

Princip fungování

  1. Trynx odesílá data na e-shop — periodicky nebo na pokyn uživatele odešle XML se stavy skladu všech aktivních produktů
  2. E-shop přijme a zpracuje — aktualizuje dostupnost produktů podle přijatých dat
  3. E-shop potvrdí přijetí — vrátí odpověď začínající <OK>

Komunikace je jednosměrná (Trynx → e-shop). Trynx odesílá kompletní stav skladu v jednom HTTP requestu.

Autentizace

Trynx se autentizuje tokenem v URL.

Formát URL:

POST {base_url}/{token}{import_script}

Příklad:

POST https://eshop.example.com/a1b2c3d4e5/api/stock/sync

Endpoint pro příjem stavů skladu

Request

POST {base_url}/{token}{import_script}
Content-Type: application/x-www-form-urlencoded

Parametry requestu

Data jsou odesílána jako POST parametr cXML obsahující XML řetězec.

cXML=<?xml version="1.0" ...?>...

Získání XML na straně serveru (příklady):

// PHP
$xml = $_POST['cXML'];

// Node.js (Express)
const xml = req.body.cXML;

// Python (Flask)
xml = request.form['cXML']

Očekávaná odpověď

  • HTTP Status: 200
  • Tělo odpovědi musí začínat řetězcem <OK>

Příklad úspěšné odpovědi:

<OK>Stock updated successfully</OK>

Příklad chybové odpovědi:

<ERROR>Invalid XML format</ERROR>

Pokud odpověď nezačíná <OK>, Trynx to vyhodnotí jako chybu a zobrazí uživateli hlášení.

XML formát stavů skladu

Struktura

<?xml version="1.0" encoding="windows-1250" standalone="yes"?>
<VFPDataSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tbl_cenik>
        <ident_ci>PROD-001</ident_ci>
        <mj_astav>150.00</mj_astav>
        <mj_bstav>12.00</mj_bstav>
        <store>
            <store_id>Hlavní sklad</store_id>
            <quantity>120.00</quantity>
        </store>
        <store>
            <store_id>Sklad Praha</store_id>
            <quantity>30.00</quantity>
        </store>
    </tbl_cenik>
    <tbl_cenik>
        <ident_ci>PROD-002</ident_ci>
        <mj_astav>0.00</mj_astav>
        <mj_bstav>0.00</mj_bstav>
    </tbl_cenik>
</VFPDataSet>

Popis elementů

Kořenový element

Element Popis
<VFPDataSet> Kořenový element obsahující všechny produkty

Produkt <tbl_cenik> (opakuje se pro každý aktivní produkt)

Element Typ Vždy přítomen Popis
<ident_ci> string Ano Katalogové číslo / SKU produktu. Slouží jako jednoznačný identifikátor pro párování s produktem v e-shopu.
<mj_astav> decimal Ano Aktuální stav skladu — celkové dostupné množství napříč všemi sklady. Zaokrouhleno na 2 desetinná místa.
<mj_bstav> decimal Ano Blokované množství — množství rezervované nevyřízenými zakázkami (které ještě nebyly expedovány ani stornovány). Může být 0.00 pokud firma nepoužívá blokování skladu.
<store> element Ne Rozpad množství po jednotlivých skladech. Může se opakovat (0 až N výskytů). Nemusí být přítomen, pokud produkt nemá žádné skladové pohyby.

Sklad <store> (0 až N opakování v rámci <tbl_cenik>)

Element Typ Popis
<store_id> string Název skladu v Trynx (např. "Hlavní sklad", "Sklad Praha")
<quantity> decimal Množství na tomto konkrétním skladě. Zaokrouhleno na 2 desetinná místa.

Výpočet množství

Aktuální stav (mj_astav)

Součet všech příjmů minus součet všech výdejů za celou historii skladových pohybů produktu:

mj_astav = SUM(příjmy) - SUM(výdeje)

Z výpočtu jsou vyloučeny nedokončené importy (rozpracované příjemky).

Blokované množství (mj_bstav)

Součet množství na položkách zakázek, které:

  • ještě nebyly expedovány (nemají přiřazený skladový pohyb)
  • nejsou stornované
  • nejsou dokončené/finalizované

Pokud firma nemá zapnuté blokování skladu v nastavení, mj_bstav je vždy 0.00.

Skutečně dostupné množství pro e-shop

E-shop by měl pro zobrazení dostupnosti zákazníkům vypočítat:

dostupné = mj_astav - mj_bstav

Příklad: Kompletní XML

<?xml version="1.0" encoding="windows-1250" standalone="yes"?>
<VFPDataSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tbl_cenik>
        <ident_ci>WIDGET-A100</ident_ci>
        <mj_astav>250.00</mj_astav>
        <mj_bstav>35.00</mj_bstav>
        <store>
            <store_id>Hlavní sklad</store_id>
            <quantity>200.00</quantity>
        </store>
        <store>
            <store_id>Sklad Praha</store_id>
            <quantity>50.00</quantity>
        </store>
    </tbl_cenik>
    <tbl_cenik>
        <ident_ci>WIDGET-B200</ident_ci>
        <mj_astav>0.00</mj_astav>
        <mj_bstav>0.00</mj_bstav>
    </tbl_cenik>
    <tbl_cenik>
        <ident_ci>SLUZBA-MONTAZ</ident_ci>
        <mj_astav>1000.00</mj_astav>
        <mj_bstav>0.00</mj_bstav>
        <store>
            <store_id>Hlavní sklad</store_id>
            <quantity>1000.00</quantity>
        </store>
    </tbl_cenik>
</VFPDataSet>

Interpretace e-shopem:

Produkt Na skladě Blokováno Dostupné pro prodej
WIDGET-A100 250 ks 35 ks 215 ks
WIDGET-B200 0 ks 0 ks 0 ks (vyprodáno)
SLUZBA-MONTAZ 1000 ks 0 ks 1000 ks

Poznámky k implementaci

  • Všechny aktivní produkty jsou odesílány v každém požadavku — e-shop by měl při zpracování aktualizovat všechny přijaté produkty najednou
  • Produkty, které nejsou v XML, nebyly změněny nebo jsou neaktivní — e-shop by je neměl mazat, pouze ignorovat
  • Kódování: XML deklaruje windows-1250, doporučujeme zpracovávat s podporou tohoto kódování (nebo konvertovat na UTF-8)
  • Desetinná čísla používají tečku jako oddělovač
  • Frekvence synchronizace závisí na nastavení v Trynx — může být manuální (tlačítko), při přihlášení uživatele, nebo automatická
  • Element <store> nemusí být přítomen u produktů bez skladových pohybů — součet quantities ve <store> elementech nemusí odpovídat <mj_astav> (kvůli vyloučeným nedokončeným importům)
  • Párování produktů probíhá výhradně přes <ident_ci> — tato hodnota musí odpovídat SKU/katalogovému číslu produktu v e-shopu
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