> ## Documentation Index
> Fetch the complete documentation index at: https://api.basetools.cz/llms.txt
> Use this file to discover all available pages before exploring further.

# Statusy

> Čtení i zápis stavů objednávek, typický setup a práce se stornem

Statusy jsou v Base plně definované uživatelem — každý účet si je pojmenovává a čísluje jinak. **Nikdy proto nezapisujte ID statusů natvrdo bez ověření na konkrétním účtu klienta.**

## Čtení statusů

Aktuální seznam statusů (a jejich skupin, které slouží jen k vizuálnímu členění v panelu) získáte metodami:

* [`getOrderStatusList`](https://api.baselinker.com/index.php?method=getOrderStatusList) — seznam statusů.
* [`getOrderStatusGroups`](https://api.baselinker.com/index.php?method=getOrderStatusGroups) — seznam skupin statusů.

Status sám o sobě nic nedělá — jeho chování (odeslání trackovacího čísla, faktury do marketplace apod.) se definuje až v **Automatických akcích** a v nastavení konkrétní integrace (např. Integrace → Allegro → Stavy objednávek). Víc o mechanismu v [Automatizace a webhooky](/cs/objednavky/automatizace-a-webhooky).

Typický základní setup účtu:

* *Nové objednávky* (neutrální, nic nedělá)
* *Poslat*
* *Odesláno*
* *Doručeno*
* *Zrušeno*
* volitelně *(Faktura)*, *(Zrušeno Alza)*, *(Zamítnuto Alza)*

## Zápis statusů

* [`setOrderStatus`](https://api.baselinker.com/index.php?method=setOrderStatus) — změna statusu jedné objednávky.
* [`setOrderStatuses`](https://api.baselinker.com/index.php?method=setOrderStatuses) — hromadná změna.
* [`addOrderStatus`](https://api.baselinker.com/index.php?method=addOrderStatus) — založení nového statusu programaticky (typicky jen při prvotním nastavení integrace).

### Doporučený vzor pro obousměrnou synchronizaci

Nejčastější chybou je posílat stav zpátky do Base při každé změně ve vlastním systému bez kontroly aktuálního stavu — může dojít k závodu (race condition), pokud stejnou objednávku upravuje i uživatel v panelu. Doporučený postup: před zápisem stavu si ho ověřte přes `getOrders`, a měňte ho jen pokud se skutečně liší.

## Stornované objednávky

Informaci, že si zákazník na marketplace vyžádal storno, dostane Base od marketplace. Mechanismus zachycení této události (automatická akce, `getJournalList`, webhook) je popsaný v [Automatizace a webhooky](/cs/objednavky/automatizace-a-webhooky) — tady je vysvětlené, **jaký status** v takové situaci nastavit.

<Warning>
  Specifický případ jsou statusy pro Alza Trade, která rozlišuje **Zrušeno** a **Zamítnuto** (Cancel / Reject):

  * Dokud k objednávce ještě neexistuje odeslaný přepravní štítek, posíláte do Alzy status **Zrušeno** (případně nejdřív smažete rozpracovaný štítek přes `deleteCourierPackage` a pak teprve nastavíte Zrušeno).
  * Pokud už byl štítek odeslaný do Alzy (proběhl tzv. Shipment Departure), **štítek už nikdy nemažte** a místo toho posíláte status **Zamítnuto**. Stejné pravidlo platí i pro nevyzvednuté zásilky.
</Warning>

<Tip>
  Netriviální mapování statusů mezi Base a vaším ERP (např. víc stavů Base na jeden stav v ERP) doporučujeme konzultovat s implementačním oddělením před nasazením do produkce.
</Tip>
