---
title: "Produkty a kategórie — Shops for Laravel | Roundly"
description: "Vytvárajte produkty a kategórie, priraďujte kategórie, plánujte zverejnenie a ukladajte názvy a popisy vo viacerých jazykoch."
url: https://roundly-consulting.com/sk/open-source/navody/shops-for-laravel/katalog
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)

# Produkty a kategórie

Produkty a kategórie patria voliteľnému obchodu, z názvu si vygenerujú slug pre URL a používajú ho ako route key. Každý produkt dostane pri vytvorení jeden predvolený variant a $product->price číta cenu predvoleného variantu (s najnižšou pozíciou):

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

$category = Category::create(['name' => 'Beverages', 'published_at' => now()]);
// $category->slug === 'beverages'

$product = Product::create(['name' => 'Sparkling Water', 'published_at' => now()]);
$product->categories()->attach($category);   // many-to-many, pivot with timestamps

$product->price;   // RoundlyConsulting\Money\Money — proxied from the default variant
```

## Relácie v skratke

```php
$product->variants();          // HasMany<ProductVariant>
$product->defaultVariant();    // HasOne<ProductVariant> — lowest position
$product->options();           // HasMany<ProductOption>, ordered by position
$product->categories();        // BelongsToMany<Category>
$product->shop();              // BelongsTo — the configured tenant model
$product->variantFor([$id]);   // ?ProductVariant matching exactly these option-value ids
```

## Zverejňovanie

Produkty aj kategórie zdieľajú concern HasPublishing, riadený voliteľným stĺpcom published\_at — zverejnite hneď, naplánujte na neskôr alebo ponechajte koncept:

```php
Product::query()->published();     // published_at set and not in the future
Product::query()->unpublished();   // no published_at, or scheduled for later
Product::query()->forShop($shop)->published()->get();

$product->isPublished();           // bool

$product->update(['published_at' => now()->addWeek()]);   // schedule
$product->update(['published_at' => null]);               // back to draft

Category::query()->published()->get();                   // categories publish the same way
```

## Preklady

name, slug a description sú preložiteľné a ukladajú sa ako natívny JSON podľa jazykov. Čítanie vráti hodnotu aktuálneho jazyka so zálohou shops.locales.fallback; zápis obyčajného reťazca sa uloží pod aktuálny jazyk, takže jednojazyčné obchody nepotrebujú nič navyše:

```php
$product->setTranslation('name', 'en', 'Sparkling Water');
$product->setTranslation('name', 'sk', 'Perlivá voda');
$product->save();

app()->setLocale('sk');
$product->name;                          // "Perlivá voda"
$product->getTranslation('name', 'en');  // "Sparkling Water"
$product->getTranslations('name');       // ['en' => 'Sparkling Water', 'sk' => 'Perlivá voda']

// A plain string is stored under the current locale:
$product->update(['description' => 'Naturally carbonated.']);

// Or set several locales at once:
Product::create(['name' => ['en' => 'Chair', 'sk' => 'Stolička']]);
```

Slugy sa generujú pre každý jazyk z prekladov názvu — pozrite Slugy a URL. Názvy obchodov sa prekladajú rovnako.

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