Přeskočit na hlavní obsah
Strom ceníku přes REST API

Jak vytvořit strom ceníku přes REST API

Ota Rádl avatar
Autor: Ota Rádl
Aktualizováno před více než 3 lety

Import do stromu ceníku je aktuálně ve stavu NOT_DOCUMENTED import podporujeme, ale není dokumentovaný a nedoporučujeme jej používat. Není tedy plně implementován, například identifikace je možná pouze pomocí ID. Pokud přecejen budete chtít import použít seznámíme Vás s postupem na jednoduchém příkladu.

Popis evidencí naleznete zde:

  • strom - popisuje základní struktur (uzly/větve) stromu, jak ji vidíme v aplikaci po zapnutí stromu, zjistíme zde například jejich hladinu, pořadí, otce a cestu

  • strom-koren - popisuje kořen stromu, standardně se jedná o STR_CEN - Strom ceníku

  • strom-cenik - popisuje přiřazení ceníkových položek do jednotlivých uzlů (větví) stromu

Pro lepší pochopení struktury a zavislostí si ukážeme jednoduchý příklad stromu.

Na obrázku je znázorněna cesta do kategorie Solná mýdla a její hladina.

V API je tento strom zobrazen následovně:

Otec je předchozí uzel (MYDLA), cesta a hladina je pořadí, jak je vidíte v aplikaci, tím že se počítá i úvodní "Strom ceníku".

Tvorba stromu

V případě tvorby stromu jsou povinné položky jeho název, pořadí a strom do kterého patří. Cesta a hladina je vypočtena automaticky.

<winstrom version="1.0">
<strom>
<id>code:TELKREM</id>>
<nazev>Tělové krémy</nazev>
<poradi>1</poradi>
<strom>code:STR_CEN</strom>
<otec>code:KREMY</otec>
</strom>
</winstrom>

Pomocí pořadí nastavíme, na jaké pozici se ve své kategorii uzel zobrazí. Strom je hlavní kořen stromu, otec je předcházející uzel stromu.

Přiřazení ceníkové položky do stromu

Jak bylo uvedeno, z důvodu implementace je nutné uzel zapsat ID nikoliv kódem.

<winstrom version="1.0">
<strom-cenik>
<!-- idZaznamu = ID nebo kód ceníkové položky,
kterou chcete do stromu přiřadit -->
<idZaznamu>code:TELKREM ABC 500</idZaznamu>

<!-- uzel = ID daného uzlu ve stromu,
které zjistíte dotazem na /strom.xml -->
<uzel>4</uzel>
</strom-cenik>
</winstrom>

Po provedení importu se v dané větvy stromu (ID=4) zobrazí přiřazená položka TELKREM ABC 500.

Přesun větve stromu

Pro případný přesun větve je potřeba upravit element otec na kód nové nadřazené kategorie a element pořadí = pro jistotu např. 99, zařadí se tak na konec.

<winstrom version="1.0">
<strom>
<id>code:PANSKEKREMY</id>
<poradi>99</poradi>
<otec>code:TELKREMY</otec>
</strom>
</winstrom>

Dojde k přesunu celé kategorie PANSKEKREMY včetně podkategorií a přiřazených položek do kategorie TELKREMY, nikoliv zkopírování.

Dostali jste odpověď na svou otázku?