> ## Documentation Index
> Fetch the complete documentation index at: https://www.twicecommerce.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# SKU (skladová jednotka)

> Identifikátor na úrovni produktu, který sdružuje podobné skladové položky pod společnou definicí pro správu produktových informací ve velkém měřítku.

![Tabulka SKU v administraci](https://mintcdn.com/twicecommerce/R_1b45pRTajoRzbd/images/inventory-skus-list.webp?fit=max\&auto=format\&n=R_1b45pRTajoRzbd\&q=85\&s=433c6023ec07c8cead8c85a6a43d00c7)

Inventář > SKU

## Definice

<Snippet file="definitions/cs/sku-definition.mdx" />

SKU je **šablona** pro typ produktu. Obsahuje informace na úrovni produktu (název, kód, kategorii, atributy, popis, základní nákupní cenu) a slouží jako nadřazená definice pro libovolný počet [skladových položek](https://www.twicecommerce.com/docs/cs/concepts/inventory/stock-items.md), které představují skutečné fyzické jednotky.

> [!NOTE]
>
> **SKU jsou šablony.** Definujte informace o produktu jednou na SKU a každá propojená skladová položka je zdědí. Skladové položky mohou stále přepsat jakékoli zděděné pole jednotlivě. SKU je výchozí hodnota, ne zámek.

**Příklad.** Vytvořte SKU `BIK-S` s názvem **Kolo S**:

* Kategorie: *Kola > Městská*
* Atributy: `Značka: Trek`, `Velikost rámu: S`
* Nákupní cena: `499 €`

Nyní zaregistrujte 20 skladových položek propojených s tímto SKU. Každá zdědí všechny čtyři vlastnosti. Jedna z nich pochází od jiného dodavatele za `520 €`. Přepište `purchasePrice` u této jedné položky; ostatní budou dál číst `499 €` z SKU.

> [!TIP]
>
> **Zvláštnost v TWICE:** SKU odděluje **co něco je** (produkt) od **kterou konkrétní jednotku** (fyzická instance). Právě to umožňuje řídit produktový katalog a zároveň zachovat životní cyklus, stav a ziskovost na úrovni jednotlivé položky.

## Kde to použiji?

SKU jsou klíčové pro správu produktů a objevují se v celém TWICE:

* **Správa produktového katalogu**: definujte šablony produktů, které sdílí mnoho skladových položek
* **Vytváření inzerátů**: inzeráty odkazují na SKU, aby definovaly, co lze vyřídit
* **Hromadné operace**: aktualizujte cenu, popis nebo atributy jednou na SKU a propagujte je na všechny propojené položky
* **Reporting a analytika**: analyzujte výkonnost podle typu produktu, ne podle jednotlivé položky
* **Plánování inventáře**: sledujte úroveň zásob a vzorce poptávky podle SKU
* **AI návrhy**: `suggestSkuCode` navrhne kód z názvu SKU

## SKU vs skladová položka

| Koncept | SKU | Skladová položka |
| - | - | - |
| Co popisuje | Typ produktu | Fyzickou jednotku |
| Kardinalita | Jedno na produkt | Mnoho na jedno SKU |
| Identifikátor | `code` (kód SKU) | `codes` (kódy položky) |
| Obsahuje zásoby? | Ne | Ano: množství, místo, status, stav |
| Má hlavní knihu? | Ne | Ano: příjmy, náklady, ziskovost |
| Má události? | Ne | Ano: rezervace, poznámky, protokol aktivit |
| Nastavuje se při vytvoření | Jednou | Jednou na fyzickou jednotku |

Skladová položka může být i **nepropojená** (`skuId: null`), užitečné pro jednorázové položky, které se nehodí do žádné šablony produktu.

## Zděděná pole

Následující pole se přenášejí ze SKU na každou propojenou skladovou položku:

| Pole SKU | Zdědí skladová položka | Pole původu na artiklu |
| - | - | - |
| `purchasePrice` | `purchasePrice` | `purchasePriceOrigin` (`sku` nebo `article`) |
| `description` | `description` | `descriptionOrigin` (`sku` nebo `article`) |
| `fulfillmentFields` | `fulfillmentFields` (vyhrává zadání na objednávce, poté položka, poté SKU) | – |
| `taxonomyCategoryId` | `taxonomyCategoryId` | – |
| `attributes` | `attributes` (sloučeno s úrovní položky) | – |
| `tags` | `tags` (viditelné na propojených položkách) | – |
| `bufferTimeAmountAfter` + `bufferTimeUnitAfter` | `bufferTimeAmountAfter` + `bufferTimeUnitAfter` | `bufferTimeOrigin` (`sku` nebo `article`) |

**Chování přepisu:**

* Vlastní hodnota skladové položky má přednost před hodnotou SKU.
* API vystavuje pole `*Origin`, takže vždy víte, zda byla hodnota zděděna, nebo nastavena na položce.
* Vymazání hodnoty na skladové položce (nastavení na `null`) ji nechá znovu zdědit ze SKU.
* Aktualizace pole na SKU okamžitě změní platnou hodnotu na každé propojené položce, která nemá vlastní přepis.
* Doba odstupu používá třístavový model: `null` = zdědit ze SKU, `0` = explicitně žádný odstup (přepisuje SKU), `> 0` = vlastní přepis. Podrobnosti viz [Skladová položka – Vyřízení](https://www.twicecommerce.com/docs/cs/inventory/stock-items/fulfillment.md).

> [!WARNING]
>
> Změna `purchasePrice` na SKU **nepřepisuje** historické záznamy v hlavní knize. Ty si zachovávají cenu, se kterou byly zaznamenány. Dědičnost platí jen pro **aktuální** čtení.

## Kód SKU

`code` je identifikátor SKU viditelný pro uživatele. Pravidla:

* Povinný, minimální délka 1.
* Musí být jedinečný v rámci tenanta.
* Ověřte před vytvořením pomocí `POST /skus/validate-codes`.
* Automaticky navrhněte kód z názvu pomocí `POST /skus/suggest-code`.
* Lze upravit po vytvoření, ale aktualizace se kontrolují podle stejného pravidla jedinečnosti.

Běžné vzory: `BIK-S`, `SKI-ATOM-170`, `HELM-MD-RED`. Zvolte něco krátkého, snadno zapamatovatelného a stabilního.

## Klíčové vlastnosti

| Vlastnost | Typ | Popis |
| - | - | - |
| `id` | UUID | Jedinečný identifikátor. |
| `name` | string | Uživatelsky přívětivý název produktu. |
| `code` | string | Kód SKU jedinečný v rámci tenanta. |
| `taxonomyCategoryId` | string, nullable | Kategorie ve vaší taxonomii. |
| `purchasePrice` | number, nullable | Výchozí nákupní cena zděděná propojenými položkami (v nejmenších jednotkách). |
| `description` | rich text JSON, nullable | Výchozí popis. |
| `fulfillmentFields` | array | Hodnoty polí vyřízení zděděné propojenými položkami. Vrací je jen administrátorské koncové body. |
| `attributes` | array | Atributy zdroje přiřazené k SKU. |
| `tags` | array | Odkazy na štítky. |
| `createdAt` / `updatedAt` | ISO datetime | Časová razítka. |
| `articles` | array (volitelné) | Pokud je vyžádáno, vnořené skladové položky propojené s tímto SKU. |

## Více inzerátů na jedno SKU

Jedno SKU může pohánět více inzerátů. Vrstva inzerátu doplňuje podmínky pronájmu, cenové tabulky, okna dostupnosti a kanály, ale SKU pod ním zůstává stejné. Takto může jeden produkt vystupovat v různých obchodech, balíčcích nebo cenových kontextech bez duplikování své identity.

```mermaid theme={null}
%%{init: {'flowchart': {'nodeSpacing': 20, 'rankSpacing': 30}}}%%
flowchart TB
    SKU["**SKU: Kolo S**"]
    L1["Inzerát: Denní pronájem"]
    L2["Inzerát: Týdenní balíček"]
    L3["Inzerát: K prodeji"]
    A1["Skladová položka #1"]
    A2["Skladová položka #2"]
    A3["Skladová položka #3"]
    SKU --> L1
    SKU --> L2
    SKU --> L3
    SKU --> A1
    SKU --> A2
    SKU --> A3
    style SKU fill:#3b82f633,stroke:#3b82f6,stroke-width:3px,font-weight:bold
    style A1 fill:#10b98133,stroke:#10b981,stroke-width:2px
    style A2 fill:#10b98133,stroke:#10b981,stroke-width:2px
    style A3 fill:#10b98133,stroke:#10b981,stroke-width:2px
    style L1 fill:#f59e0b1a,stroke:#f59e0b,stroke-width:1px
    style L2 fill:#f59e0b1a,stroke:#f59e0b,stroke-width:1px
    style L3 fill:#f59e0b1a,stroke:#f59e0b,stroke-width:1px
```

## Vztahy

> **Má mnoho skladových položek**
>
> Má mnoho [skladových položek](https://www.twicecommerce.com/docs/cs/concepts/inventory/stock-items.md) přes `articles[].skuId`. Každá skladová položka zdědí vlastnosti SKU, ale zachovává si vlastní sledování, hlavní knihu a historii událostí.

> **Odkazují na něj inzeráty**
>
> [Inzeráty](https://www.twicecommerce.com/docs/cs/concepts/catalog/listings.md) odkazují na SKU jako na zdroje zásob, které lze vyřídit. Jedno SKU může pohánět mnoho inzerátů.

> **Patří do kategorie a má atributy**
>
> Patří do kategorie v taxonomii a má vlastní atributy zdroje. Ty se přenášejí na propojené skladové položky.

## Životní cyklus

**1. Vytvoření**

SKU se vytváří při definování nových typů produktů ve vašem katalogu.

> **Jak vytvořím SKU?**
>
> V **Inventář → SKU** klikněte na **Vytvořit SKU**. Zadejte název; kód lze automaticky navrhnout. SKU můžete vytvořit i automaticky během registrace skladových položek zadáním nového názvu SKU do výběru SKU.

> **Jaké informace jsou vyžadovány?**
>
> Minimum: `name` a `code`. Doporučeno: `taxonomyCategoryId`, `purchasePrice`, `description` a atributy, cokoli, co chcete, aby zdědila každá skladová položka.

> **Lze vytváření automatizovat?**
>
> Ano. Použijte `POST /skus` (jedno) nebo `POST /skus/many` (hromadně). Obě jsou idempotentní vůči `code`. Duplicitní kódy odmítne `validateCodes` již na vstupu.

**2. Používání**

Aktivní SKU slouží jako šablony napříč operacemi.

> **Kde SKU uvidím?**
>
> **Inventář → SKU**, detail SKU (s vnořenými skladovými položkami), registrace skladové položky, konfigurace inzerátu a reporting.

> **Jaké akce mohu provést?**
>
> Upravit jakékoli pole, propojit skladové položky nastavením jejich `skuId`, přiřadit štítky, nastavit atributy a správu taxonomie. Aktualizace na úrovni SKU se okamžitě propagují na propojené skladové položky, které pole nepřepsaly.

> **Má SKU status?**
>
> Ne přímo. Dostupnost určují propojené skladové položky. SKU bez žádné `active` skladové položky má nulovou dostupnost k prodeji.

**3. Úprava**

Používejte SKU k hromadným změnám.

> **Jak SKU upravím?**
>
> Otevřete detail SKU a upravte, nebo použijte `PATCH /skus/:skuId`. Změny se přenášejí na propojené skladové položky prostřednictvím dědičnosti.

> **Co s kódem SKU?**
>
> Lze upravit, ale nová hodnota musí být jedinečná v rámci tenanta. Vyhněte se změně kódů, které jsou vytištěné na fyzických štítcích.

> **Lze hromadně aktualizovat atributy?**
>
> Ano. Aktualizace atributu na SKU aktualizuje platnou hodnotu na každé propojené skladové položce, která tento atribut nepřepsala.

**4. Smazání**

SKU lze smazat, když je produkt vyřazen.

> **Jak SKU smažu?**
>
> Z tabulky SKU nebo pomocí `DELETE /skus/:skuId`. Pro hromadné smazání: `POST /skus/delete` s `{ ids }` nebo `{ deleteAllExcept }`.

> **Co se stane s propojenými skladovými položkami?**
>
> Jejich `skuId` se nastaví na `null` (stanou se nepropojenými). Zděděné hodnoty se ztratí při dalším čtení. Pokud je chcete zachovat, nastavte je přímo na položkách.

## Časté dotazy

> **Mám vytvořit SKU před skladovými položkami, nebo po nich?**
>
> Funguje obojí. Vytvořte SKU nejprve, pokud plánujete katalog. Pro příležitostný inventář registrace skladové položky SKU vytvoří nebo propojí za běhu.

> **Může skladová položka patřit k více než jednomu SKU?**
>
> Ne. `skuId` má jednu hodnotu. Propojení můžete kdykoli změnit (zaznamená se jako událost `sku_changed`), ale aktivní je vždy jen jedno.

> **Jak se atributy SKU liší od atributů skladové položky?**
>
> Stejný tvar, jiný rozsah. Atributy SKU popisují typ produktu (např. `Značka: Trek`). Atributy skladové položky mohou doplnit nebo přepsat hodnoty na úrovni jednotky (např. konkrétní položka s `Číslo rámu: ABC123`). V API vyhrávají hodnoty na úrovni položky.

> **Potřebuji SKU vůbec?**
>
> Ne. `skuId` může být `null`. Pro jednorázové položky zaregistrujte skladovou položku bez SKU. Ztratíte dědičnost a souhrny napříč položkami, ale položka má stále vlastní hlavní knihu, události a životní cyklus.

> **Mohu přesunout všechny položky ze SKU A do SKU B?**
>
> Ano. Aktualizujte `skuId` každé skladové položky (jednou hromadnou aktualizací nebo skriptem přes API). Kód SKU na každé položce se přepíše na nové SKU; hlavní kniha a historie událostí zůstávají u položky.

## Reference pro vývojáře

SKU jsou v API vystavena jako `skus`.

> **[API: SKUs](https://www.twicecommerce.com/docs/api-reference/skus)**
>
> Otevřít koncový bod v referenci API.

## Související články

> **[Skladové položky](https://www.twicecommerce.com/docs/cs/concepts/inventory/stock-items.md)**
>
> Jednotlivé fyzické jednotky propojené se SKU

> **[Sledování inventáře](https://www.twicecommerce.com/docs/cs/concepts/inventory/inventory-tracking.md)**
>
> Sériové vs sdružené, nastavuje se na skladových položkách, ne na SKU

> **[Skladové kódy](https://www.twicecommerce.com/docs/cs/concepts/inventory/stock-codes.md)**
>
> Kódy na skladových položkách vs kód SKU


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.