> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.elall.webland.sk/navody/produkty-a-sklad/produkty-a-polia/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.elall.webland.sk/_mcp/server. # Produkty a polia > Povinné a voliteľné polia synchronizácie produktov z Elall. ## Identifikátor produktu Každá položka v sync requeste musí mať **stock\_code** (skladové číslo z Elall). Voliteľne môže obsahovať **ean**. Server podľa kľúča nájde interný `item_id` v tabuľke `product_catalog`: * s EAN: lookup `(ean, stock_code)` * bez EAN: lookup len `stock_code` (riadky v katalógu bez EAN) | Pole | Povinné | Popis | | ------------ | ------- | -------------------------------------------------------------- | | `stock_code` | áno | Skladové číslo z Elall | | `ean` | nie | EAN — ak je uvedený, použije sa kompozitný kľúč s `stock_code` | Interný Segat `item_id` **neposielate** — rieši ho server. Hodnoty `ean` a `stock_code` sa pri sync **neprepisujú** v katalógu (slúžia len na lookup). Duplicitný kľúč `(ean, stock_code)` v jednom batchi → **400**. Neznámy kľúč → HTTP **200** a `unknown_products > 0`. ## Povinné polia (každá položka) | Pole | Typ | Popis | | ---------------- | --------------------- | --------------------------------------- | | `status` | `active` \| `passive` | Stav produktu v Segat | | `segat_quantity` | celé číslo ≥ 0 | Množstvo na sklade Segat **po** doklade | | `catalog_price` | číslo ≥ 0 | Cenníková cena | | `eshop_price` | číslo ≥ 0 | E-shop cena | Ide o **cenu zo skladového kontextu** v Elall, nie o názov výrobku. ## Voliteľné polia | Pole | Popis | | -------------- | ------------------------------------------------------------ | | `request_id` | Idempotencia a audit (pri `PUT` v tele, pri `POST` v koreni) | | `sync_context` | `source_type`, `source_ref`, `note`, `actor` | Ak `request_id` chýba, server doplní UUID a vráti ho v odpovedi. ## Katalógové polia (PATCH) Všetky sú **voliteľné**. Vynechané alebo `null` = pole sa v Segat **neaktualizuje** (vhodné pri skladových dokladoch, keď sa mení len množstvo). **Poznámka:** `ean` a `stock_code` sú identifikátor — v PATCH overlay sa neaktualizujú. | JSON kľúč | Význam | | ------------------ | ------------------------------------------------------------------------------------------------------- | | `name` | Názov | | `section_width_mm` | Šírka (mm) — číslo alebo reťazec (napr. `215`, `P245`, `30X9.5`) | | `aspect_ratio` | Profil — číslo alebo reťazec (napr. `55`, `50Z`, `31X10.5`) | | `rim_inch` | Priemer ráfika — **reťazec** (max 16 znakov), napr. `"16"`, `"R21"`, `"-16"`; alias `rim_diameter_inch` | | `tread_name` | Názov dezénu | | `name_suffix` | Doplnok k názvu; alias `name_supplement` | | `load_index` | Index nosnosti | | `speed_index` | Index rýchlosti | | `special_marking` | Špeciálne označenie | | `run_on_flat` | ROF (boolean) | | `brand` | Značka | | `usage` | Trieda použitia; alias `usage_type` | | `season` | Sezóna (text do 32 znakov) | | `on_promotion` | Akcia | | `on_clearance` | Výpredaj | | `dot_code` | DOT | | `weight_kg` | Hmotnosť (kg) | | `discontinued` | Nepoužívať / nevyrába sa | | `eu_label` | EU štítok | ### `rim_inch` (typ reťazec) Pole nie je číslo — hodnoty môžu obsahovať prefix `R` alebo mínus (napr. špecifické zápisy z Elall). Posielajte ako JSON reťazec: ```json "rim_inch": "R21" ``` Platné aj `"16"`, `"-16"`. Starý kľúč `rim_diameter_inch` sa správa rovnako. ## SEGAT a viac skladov v Elall Do `segat_quantity` (a cien) pošlite **agregát** určený pre jeden logický sklad `segat` v Segat. ## Neznáme produkty Ak kľúč produktu nie je v `product_catalog`, server zapíše záznam do `pending_products` a v odpovedi zvýši `unknown_products`. Riešte založením riadku v `product_catalog` (viazaného na existujúci `item_id` v `products`) a opakujte sync. ## API Reference Schémy request/response: sekcia **Elall API** → `POST /products/sync` a `PUT /products/item`. > Povinné a voliteľné polia synchronizácie produktov z Elall.