---
title: "Přesná cena objednávky předem"
method: POST
path: "/api/order/agent/quote"
tags: ["objednávka"]
---

# Přesná cena objednávky předem

`POST /api/order/agent/quote`

## Request

- Base URL: `https://konfigurator.suorigo.cz`
- URL: `https://konfigurator.suorigo.cz/api/order/agent/quote`
- Auth: none declared

Stejné tělo jako POST /api/order/agent (items, shippingId, pickupPointId, deliverySpeedId, promoCode, customer volitelně) a STEJNÁ funkce ocenění — `totalVat` v odpovědi je přesně ta částka, na kterou POST /api/order/agent objednávku založí. Nic neukládá, artwork nenahrává.
Vrací i dostupnost všech termínů výroby (`deliverySpeeds`) a co ještě k objednání chybí (`requirements`; prázdné pole = `readyToOrder: true`). Ukaž tuhle nabídku zákazníkovi PŘED založením objednávky a počkej na jeho souhlas.

## Request body

- QuoteOrderInput
  - `items` OrderItem[], required
    - `product` string, required: id nebo slug produktu z GET /api/products
    - `colorId` string: id barvy z katalogu (colors[].id)
    - `colorName` string
    - `size` string, required: velikost z katalogu (sizes[]), např. "M"
    - `quantity` integer, required
    - `printMethod` string: z printMethods[] produktu; výchozí první
    - `layers` DesignLayer[]: vrstvy potisku — nejlépe výstup POST /api/design (už s nahranými URL)
      - `type` 'image' | 'text', required
      - `side` 'front' | 'back' | 'sideLeft' | 'sideRight', required
      - `x` number, required: % tiskové plochy zleva (0–100)
      - `y` number, required: % tiskové plochy shora (0–100)
      - `width` number, required: % šířky plochy
      - `height` number, required: % výšky plochy
      - `rotation` number
      - `src` string: image: data URL nebo veřejná https URL; po /api/design trvalá URL
      - `text` string
      - `fontFamily` string
      - `fontSize` number
      - `fill` string: barva textu, hex
  - `customer` object: volitelné — email (kvůli limitu kupónu), name/adresy/ico jen pro kontrolu, co v `requirements` ještě chybí k objednání
    - `email` string
    - `name` string
    - `address` string
    - `deliveryStreet` string
    - `deliveryCity` string
    - `deliveryZip` string
    - `ico` string
    - `billingStreet` string
    - `billingCity` string
    - `billingZip` string
  - `shippingId` 'zasilkovna' | 'balikovna' | 'ppl-vydejni' | 'dpd-vydejni' | 'ppl' | 'dpd': volitelné v quote (bez něj chybí cena dopravy, requirements to řekne)
  - `pickupPointId` string: kód výdejního místa z GET /api/shipping/pickup-points
  - `pickupPointName` string
  - `deliverySpeedId` 'd7' | 'd14' | 'd30'
  - `promoCode` string

## Response `200`

Nabídka

- QuoteOrderResult
  - `ok` boolean
  - `currency` 'CZK'
  - `items` object[]
    - `productId` string
    - `productName` string
    - `colorName` string
    - `size` string
    - `quantity` integer
    - `unitPriceVat` number
    - `lineTotalVat` number
  - `goodsTotalVat` number: zboží s DPH po termínu výroby, bez dopravy
  - `shipping` object, nullable
    - `id` string
    - `label` string
    - `priceVat` number
    - `free` boolean
    - `freeFromVat` number
  - `pickupPoint` object, nullable
    - `id` string
    - `name` string
  - `discount` object, nullable
    - `code` string
    - `type` string
    - `amountVat` number
  - `deliverySpeed` object
    - `id` string
    - `label` string
    - `pct` number
    - `expectedDeliveryDate` string, date-time
  - `deliverySpeeds` object[]: dostupnost VŠECH termínů pro tuhle objednávku
    - `id` string
    - `label` string
    - `note` string
    - `pct` number
    - `available` boolean
    - `reason` string, nullable
    - `expectedDeliveryDate` string, date-time
  - `totalVat` number: přesně ta částka, na kterou create_order objednávku založí
  - `requirements` string[]: co ještě chybí k objednání (prázdné = lze objednat)
  - `readyToOrder` boolean
  - `paymentMethods` string[]
  - `shippingOptions` object[]
    - `id` string
    - `label` string
    - `carrier` string
    - `requiresPickupPoint` boolean
    - `priceVat` number
    - `chargedVat` number
  - `note` string

## Other responses

- `400`: Neznámý produkt/velikost, neplatný kupón (`coupon_invalid`), neznámá doprava, nedostupný termín (`delivery_speed_unavailable`), vymyšlené výdejní místo (`unknown_pickup_point`)
- `409`: Cena položky nesouhlasí se serverovým přepočtem (`price_changed`)
- `429`: Překročen limit (per IP, per e-mail, globální nebo denní). Text v `error` říká, co se stalo a co dělat; typicky počkej nebo odkaž zákazníka na https://konfigurator.suorigo.cz.

---

[API](https://skmtc.dev/suorigo/apis/suorigo-api-pro-ai-agenty.md) · [All operations](https://skmtc.dev/suorigo/apis/suorigo-api-pro-ai-agenty/llms.txt) · [OpenAPI document](https://skmtc.dev/suorigo/apis/suorigo-api-pro-ai-agenty/revisions/08c6a3ef2349?raw)
