Strom ceníku¶
Strom ceníku je hierarchie kategorií, do kterých se zařazují ceníkové položky. Přes REST API jej lze spravovat čtením i importem. Zdroj: podpora.flexibee.eu.
Warning
Import do stromu ceníku je ve stavu NOT_DOCUMENTED — podporujeme jej, ale není součástí oficiální dokumentace a nedoporučujeme se na něj spoléhat. Není plně implementován; uzel stromu je například možné identifikovat pouze číselným ID, nikoli kódem.
Evidence stromu¶
Strom je popsán třemi evidencemi:
Evidence |
Co obsahuje |
|---|---|
|
Jednotlivé uzly (větve) stromu tak, jak je vidíte v aplikaci po zapnutí stromu — včetně hladiny, pořadí, nadřazeného uzlu a cesty. |
|
Kořen stromu; standardně jediný záznam |
|
Přiřazení ceníkových položek do jednotlivých uzlů stromu. |
Element otec je předchozí (nadřazený) uzel, cesta a hladina
odpovídají pořadí v aplikaci — počítá se do nich i úvodní uzel Strom
ceníku. Obě tyto vlastnosti jsou pouze pro čtení, Flexi je počítá sama.
Tvorba stromu¶
Uzel se zakládá s názvem (nazev), pořadím (poradi) a stromem,
do kterého patří (strom). Pořadím určíte, na jaké pozici se uzel ve
své kategorii zobrazí; strom je kořen stromu a otec předcházející
uzel. Cesta a hladina se dopočítají.
POST /c/{firma}/strom.json
XML |
JSON |
|---|---|
<winstrom version="1.0">
<strom>
<kod>TELKREM</kod>
<nazev>Tělové krémy</nazev>
<poradi>1</poradi>
<strom>code:STR_CEN</strom>
<otec>code:KREMY</otec>
</strom>
</winstrom>
|
{
"winstrom": {
"@version": "1.0",
"strom": [{
"kod": "TELKREM",
"nazev": "Tělové krémy",
"poradi": "1",
"strom": "code:STR_CEN",
"otec": "code:KREMY"
}]
}
}
|
Note
V elementech strom a otec lze uzel adresovat kódem
(code:…) i číselným ID. Uzly bez zkratky — například systémové
Připojené položky a Nepřipojené položky — jde adresovat jen ID.
Přiřazení ceníkové položky do stromu¶
Přiřazení se importuje do evidence strom-cenik. Ceníkovou položku
(idZaznamu) můžete zadat ID i kódem, uzel (uzel) však jen
číselným ID, které zjistíte dotazem na /strom.
POST /c/{firma}/strom-cenik.json
XML |
JSON |
|---|---|
<winstrom version="1.0">
<strom-cenik>
<!-- idZaznamu = ID nebo kód ceníkové položky -->
<idZaznamu>code:TELKREM ABC 500</idZaznamu>
<!-- uzel = číselné ID uzlu ze /strom -->
<uzel>4</uzel>
</strom-cenik>
</winstrom>
|
{
"winstrom": {
"@version": "1.0",
"strom-cenik": [{
"idZaznamu": "code:TELKREM ABC 500",
"uzel": "4"
}]
}
}
|
Po importu se v uzlu s ID 4 zobrazí přiřazená položka
TELKREM ABC 500.
Warning
Pozor na asymetrii čtení a zápisu: při čtení vrací API uzel jako
kód (například code:A-I), ale poslat takovou hodnotu zpět nelze —
import ji odmítne s 400 a kódem neniKodNeboNemuzeBytID
(Entita ‘Uzel’ neobsahuje kód nebo ho nelze použít jako ID). Použijte
hodnotu z uzel@ref, kde je číselné ID.
Neexistující ceníkovou položku odmítne API s 400 a kódem
formZaznamNenalezen.
Filtrování položek podle stromu při výpisu ceníku podporuje operátor
in subtree — viz Výpis, filtrování a dotazy.
Přesun větve stromu¶
Pro přesun větve stačí u existujícího uzlu změnit otec na novou
nadřazenou kategorii a poradi na požadovanou pozici — například
99, aby se zařadila na konec.
XML |
JSON |
|---|---|
<winstrom version="1.0">
<strom>
<id>code:PANSKEKREMY</id>
<poradi>99</poradi>
<otec>code:TELKREMY</otec>
</strom>
</winstrom>
|
{
"winstrom": {
"@version": "1.0",
"strom": [{
"id": "code:PANSKEKREMY",
"poradi": "99",
"otec": "code:TELKREMY"
}]
}
}
|
Dojde k přesunu celé kategorie PANSKEKREMY včetně podkategorií a
přiřazených položek do kategorie TELKREMY — nikoli k jejímu
zkopírování. Hladina i cesta se přepočítají samy.