---
title: "Objednávky a ceny — Shops for Laravel | Roundly"
description: "DTO Price — medzisúčet, zľava, cena bez dane, daň, doprava a konečná suma — so zafixovanými hodnotami, presnou daňou po riadkoch a súhrnom podľa sadzieb."
url: https://roundly-consulting.com/sk/open-source/navody/shops-for-laravel/ceny-objednavok
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Shops for Laravel](https://roundly-consulting.com/sk/open-source/navody/shops-for-laravel.md)

# Objednávky a ceny

Objednávka má položky, voliteľný kupón, vygenerované číslo a vlastnú menu. Jej accessor price vracia DTO Price, ktoré vypočíta zľavu, dopravu, daň a konečnú sumu z položiek, zafixovanej dopravy (shipping\_cost) a zafixovanej zľavy:

```php
$price = $order->price;          // RoundlyConsulting\Shops\Orders\DataTransferObjects\Price

$price->getSubtotal();           // sum of line totals (quantity-aware), before discount
$price->getDiscountValue();      // amount saved by the placed discount
$price->getPriceAfterDiscount(); // subtotal minus the discount
$price->getNetPrice();           // tax-exclusive value of the goods
$price->getTaxPrice();           // tax across the goods (after discount)
$price->shippingCost();          // the shipping charged: shipping_cost, or zero with free shipping
$price->getFinalPrice();         // what the customer pays (goods + shipping, tax-correct)
$price->taxSummary();            // money TaxSummary: net / tax / gross per rate
```

## Vytvorené objednávky sa neprepočítavajú

- Zľava — cena číta zľavu zafixovanú pri vytvorení (discount, free\_shipping, coupon\_code). Kupón, ktorý neskôr vyprší, je zrušený alebo vyčerpaný, vytvorenú objednávku nikdy nezmení.
- Daň — každý riadok si ponechá sadzbu, s ktorou bol pridaný (order\_items.tax\_rate a tax\_label), a objednávka si ponechá price\_type, pod ktorým vznikla. Úprava sadzieb obchodu, zmena doručovacej adresy ani prepnutie shops.pricing.price\_type nezmení cenu vytvorenej objednávky.
- Položka zapísaná bez zafixovanej sadzby (tax\_rate null) sa zdaní aktuálnou sadzbou svojho obchodu a krajiny doručenia.
- Doprava — cena zahŕňa cenu dopravy zafixovanú pri vytvorení objednávky (shipping\_cost); kupón na dopravu zdarma ju odpočíta. Neskorší výpočet pre inú adresu vytvorenú objednávku nikdy nezmení.

## Cachovanie ceny

$order->price sa vypočíta raz na inštanciu modelu a cachuje sa spolu s načítanými položkami. Po zmene objednávky v pamäti (pridanie položiek, uplatnenie zľavy) zavolajte $order->refresh() pred ďalším čítaním ceny — a aj predtým, než ju odovzdáte StoreCreditTender, ktorý strhne cenu, ktorú prečíta. Shops::order($order)->charge() pred platbou znova načíta uloženú objednávku pod zámkom jej riadku. checkout() už vracia obnovenú objednávku:

```php
use RoundlyConsulting\Money\Money;
use RoundlyConsulting\Shops\Orders\Item;

$order->price->getFinalPrice();             // computed and cached on this instance

Item::create([
    'order_id' => $order->id,
    'name' => 'Gift wrap',
    'quantity' => 1,
    'price' => Money::ofMinor(300, 'EUR'),  // must match the order's currency
]);

$order->refresh();                          // drop the cached price and items
$order->price->getFinalPrice();             // now includes the new line
```

## Súhrn dane

```php
$summary = $order->price->taxSummary();

$summary->perRate();   // net / tax / gross grouped per rate — an invoice VAT table
$summary->net();       // Money
$summary->tax();       // Money
$summary->gross();     // Money
```

## Ako sa počíta daň

- Zľava na celú objednávku sa najprv rozloží na riadky pomerne k ich súčtom cez DiscountAllocator z balíka money — podiely dajú presne celú zľavu.
- Každý riadok sa potom zdaní raz zo sumy po zľave cez TaxRate z balíka money — gross: základ − round(základ × 100 / (100 + sadzba)); net: round(základ × sadzba).
- Zaokrúhľuje sa polovica smerom od nuly cez bcmath — bez floatov. Katalóg s cenami s daňou vždy spĺňa cena bez dane + daň = cena po zľave.
- gross (predvolené) daň z ceny vyčlení; net ju pripočíta. Dopravu tento výpočet nikdy nezdaňuje.

## Cena ľubovoľných riadkov

Price môžete vytvoriť aj priamo a oceniť tak ľubovoľné riadky alebo pridať dopravu:

```php
use RoundlyConsulting\Money\Money;
use RoundlyConsulting\Shops\Orders\DataTransferObjects\Price;
use RoundlyConsulting\Shops\Orders\DataTransferObjects\PriceLine;
use RoundlyConsulting\Shops\Orders\Enums\PriceType;

$price = new Price(
    lines: [new PriceLine(unitPrice: Money::ofMinor(1000, 'EUR'), quantity: 2, taxClass: 'standard')],
    shipping: Money::ofMinor(490, 'EUR'),
    priceType: PriceType::Gross,     // or PriceType::Net
    taxResolver: null,               // defaults to app(TaxResolver::class)
    discount: Money::ofMinor(300, 'EUR'),
    freeShipping: false,
    currency: 'EUR',                 // the currency of an empty price
    shop: null,
    country: null,
);

$price->getFinalPrice();   // 21.90 EUR — 20.00 - 3.00 discount + 4.90 shipping (gross)
```

## Doprava v celkovej sume

Cena vytvorenej objednávky už dopravu zahŕňa: pri vytvorení objednávky sa vypočíta cena dopravy na doručovaciu adresu (alebo sa použije zvolené shippingCost) a zafixuje sa ako shipping\_cost — pozrite Vytváranie objednávok. $order->price->shippingCost() je účtovaná doprava: shipping\_cost, alebo nula, ak platí kupón na dopravu zdarma. Shops::order($order)->quoteShipping() ocení inú adresu bez zmeny objednávky.

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/shops-for-laravel.md)
