Preskoči na glavno vsebino

Strom cenníka cez REST API

Ako vytvoriť strom cenníka cez REST API

Avtor: Petr Pech

Import do stromu ceníka je aktuálne v stave NOT_DOCUMENTED import podporujeme, ale nie je zdokumentovaný a neodporúčame ho používať. Nie je teda plne implementovaný, napríklad identifikácia je možná iba pomocou ID. Ak napriek tomu budete chcieť import použiť, oboznámime vás s postupom na jednoduchom príklade.

Popis evidencií nájdete tu:

  • strom - popisuje základnú štruktúru (uzly/vetvy) stromu tak, ako ju vidíme v aplikácii po zapnutí stromu; zistíme tu napríklad ich hladinu, poradie, otca a cestu

  • strom-koren - popisuje koreň stromu, štandardne ide o STR_CEN – Strom ceníka

  • strom-cenik - popisuje priradenie cenníkových položiek do jednotlivých uzlov (vetví) stromu

Pre lepšie pochopenie štruktúry a závislostí si ukážeme jednoduchý príklad stromu.

Na obrázku je znázornená cesta do kategórie Solná mydlá a jej hladina.

V API je tento strom zobrazený nasledovne:

Otec je predchádzajúci uzol (MYDLA), cesta a hladina je poradie tak, ako ho vidíte v aplikácii, pričom sa počíta aj úvodný „Strom ceníka".

Tvorba stromu

Pri tvorbe stromu sú povinné položky jeho názov, poradie a strom, do ktorého patrí. Cesta a hladina sú vypočítané 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>

Pomocou poradia nastavíme, na akej pozícii sa uzol vo svojej kategórii zobrazí. Strom je hlavný koreň stromu, otec je predchádzajúci uzol stromu.

Priradenie cenníkovej položky do stromu

Ako bolo uvedené, z dôvodu implementácie je nutné uzol zapísať pomocou ID, nie kódom.

<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 vykonaní importu sa v danej vetve stromu (ID=4) zobrazí priradená položka TELKREM ABC 500.

Presun vetvy stromu

Pre prípadný presun vetvy je potrebné upraviť element otec na kód novej nadriadenej kategórie a element poradie = pre istotu napr. 99, čím sa zaradí na koniec.

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

Dôjde k presunu celej kategórie PANSKEKREMY vrátane podkategórií a priradených položiek do kategórie TELKREMY, nie ku kopírovaniu.

Ste s tem dobili odgovor na svoje vprašanje?