---
title: "Varianty, SKU a možnosti — Shops for Laravel | Roundly"
description: "Predajné varianty s vlastným SKU, cenou, menou, daňovou triedou a zásobou; možnosti, ktoré ich skladajú; a automatický predvolený variant."
url: https://roundly-consulting.com/sk/open-source/navody/shops-for-laravel/varianty-a-moznosti
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)

# Varianty, SKU a možnosti

Každá predajná jednotka je ProductVariant s vlastným sku, cenou, menou, daňovou triedou a zásobou. Každý produkt dostane pri vytvorení jeden predvolený variant — skutočný, predajný variant, nie zástupný, ktorý neskoršie varianty nahradia. Nenechávajte ho na nule: pri jednoduchom produkte mu nastavte cenu, inak z neho urobte prvý variant s možnosťami a ďalšie pridajte vedľa neho:

```php
use RoundlyConsulting\Money\Money;
use RoundlyConsulting\Shops\Products\ProductVariant;

// The price cast writes the currency column from the Money.
$small = $product->defaultVariant;   // set up the default variant rather than leaving it at zero
$small->update(['sku' => 'WATER-0.5L', 'price' => Money::ofMinor(199, 'EUR'), 'stock' => 50]);

$large = $product->variants()->create([
    'sku' => 'WATER-1L', 'price' => Money::ofMinor(299, 'EUR'), 'stock' => 30, 'position' => 1,
]);

$product->price;                       // 1.99 EUR — the default (lowest-position) variant

// Re-pricing in another currency: set currency BEFORE price — the cast refuses
// to silently re-denominate a column that already holds another code.
$small->update(['currency' => 'USD', 'price' => Money::ofMinor(219, 'USD')]);

$product->defaultVariant;              // the lowest-position variant (WATER-0.5L)
$small->inStock(10);                   // bool — respects track_stock and the reserved quantity
$small->availableStock();              // stock - reserved
ProductVariant::query()->inStock(2);   // untracked, or at least 2 available
```

## Predvolený variant

Každý produkt dostane pri vytvorení jeden: SKU zo slugu v záložnom jazyku s príponou -DEFAULT (napr. SPARKLING-WATER-DEFAULT), nulovú cenu v mene obchodu produktu (alebo v predvolenej mene), daňovú triedu standard, zapnuté sledovanie zásoby a nulovú zásobu. $product->defaultVariant aj $product->price čítajú variant s najnižšou pozíciou, teda tento, ak poradie nezmeníte. Pred predajom mu nastavte cenu a prijmite tovar. SKU je jedinečné v rámci produktu.

## Možnosti

Možnosti (veľkosť, farba) a ich hodnoty tvoria osi variácií; variant je kombinácia jednej hodnoty z každej možnosti. Variant nájdete podľa množiny hodnôt:

```php
use RoundlyConsulting\Money\Money;
use RoundlyConsulting\Shops\Products\Product;

$shirt = Product::create(['name' => 'T-Shirt']);

$size  = $shirt->options()->create(['name' => 'Size', 'position' => 0]);
$small = $size->values()->create(['value' => 'S', 'position' => 0]);
$large = $size->values()->create(['value' => 'L', 'position' => 1]);

// The default variant is a real, sellable variant — make it the first option variant:
$s = $shirt->defaultVariant;
$s->update(['sku' => 'TS-S', 'price' => Money::ofMinor(1990, 'EUR')]);
$s->optionValues()->attach($small);

$l = $shirt->variants()->create([
    'sku' => 'TS-L', 'price' => Money::ofMinor(1990, 'EUR'), 'position' => 1,
]);
$l->optionValues()->attach($large);

$shirt->variantFor([$small->id]);   // $s — exactly these option-value ids, or null
```

```php
$option->product();        // BelongsTo<Product>
$option->values();         // HasMany<ProductOptionValue>, ordered by position
$value->option();          // BelongsTo<ProductOption>
$value->variants();        // BelongsToMany<ProductVariant>
$variant->product();       // BelongsTo<Product>
$variant->optionValues();  // BelongsToMany<ProductOptionValue>
```

Možnosti určujú, čo sa dá kúpiť. Na popisné, filtrovateľné údaje ako materiál či hmotnosť použite špecifikáciu (atribúty).

## 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)
