---
title: "Inštalácia — Shops for Laravel | Roundly"
description: "Inštalácia cez Composer, publikovanie štrnástich migrácií aj tabuliek sesterských balíkov a rozhodnutie o type kľúča a jazykoch pred migráciou."
url: https://roundly-consulting.com/sk/open-source/navody/shops-for-laravel/instalacia
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)

# Inštalácia

Pridajte balík, potom publikujte a spustite jeho migrácie. Service provider sa načíta automaticky cez package discovery — bez manuálnej registrácie:

```bash
composer require roundly-consulting/shops-for-laravel

php artisan vendor:publish --tag="shops-migrations"
php artisan migrate
```

Migrácie sa len publikujú — balík ich sám nikdy nenačíta, takže publikovanie je povinný krok, nie voliteľný. Štrnásť súborov sa publikuje v poradí závislostí (obchody → produkty → varianty → košíky → objednávky), takže ich jeden migrate aplikuje bez problémov. Opätovné publikovanie prepíše tie isté súbory namiesto duplikovania.

## Migrácie sesterských balíkov

Shops stavia na sesterských balíkoch Roundly, ktoré Composer nainštaluje automaticky. Šesť z nich má vlastné tabuľky — pred migráciou publikujte každú:

```bash
php artisan vendor:publish --tag="media-migrations"
php artisan vendor:publish --tag="reviews-migrations"
php artisan vendor:publish --tag="attributes-migrations"
php artisan vendor:publish --tag="coupons-migrations"
php artisan vendor:publish --tag="credits-migrations"
php artisan vendor:publish --tag="addresses-migrations"
php artisan migrate
```

Jediná migrácia balíka sluggable (sluggable-migrations, tabuľka slug\_history) je potrebná len vtedy, keď zapnete shops.slugs.history.

## Pred migráciou sa rozhodnite

- shops.key\_type — bigint, uuid alebo ulid pre polymorfné stĺpce orders.customer, carts.owner a stock\_adjustments.reference. Zvoľte typ kľúča vášho modelu používateľa; po spustení migrácií sa už nedá zmeniť.
- sluggable.locales.supported — migrácie obchodov, produktov a kategórií vytvoria jeden jedinečný index slugu pre každý podporovaný jazyk. Predvolene app.locale a app.fallback\_locale.

```bash
# .env — fixed once the migrations have run
SHOPS_KEY_TYPE=ulid   # bigint (default) | uuid | ulid
```

```php
// config/sluggable.php — one unique slug index is created per supported locale
'locales' => [
    'supported' => ['en', 'sk'],   // null = app.locale + app.fallback_locale
],
```

## Konfiguračný súbor

Konfiguračný súbor je voliteľný — každý kľúč má predvolenú hodnotu a tie bežné sa dajú nastaviť cez env. Publikujte ho len vtedy, keď chcete niečo prepísať:

```bash
php artisan vendor:publish --tag="shops-config"
```

Balík poskytuje dva publish tagy: shops-migrations a shops-config.

## Čo dostanete spolu s ním

Tieto balíky Roundly sú pevné závislosti a poháňajú konkrétne časti obchodu:

| Balík | Čo poháňa |
| --- | --- |
| `money-for-laravel` | Každá suma: Money a Currency, presná daň po riadkoch, rozloženie zľavy, casty a peňažné stĺpce decimal(38,0). |
| `enums-for-laravel` | Pomocné metódy na Status, PriceType a StockReason — labels(), options(), validationRule() a ďalšie. |
| `media-library-for-laravel` | Hlavné obrázky a galérie produktov, obrázky variantov, bannery kategórií. |
| `reviews-for-laravel` | Recenzie produktov, súhrny hodnotení, overené nákupy. |
| `attributes-for-laravel` | Typované, filtrovateľné atribúty špecifikácie produktu. |
| `coupons-for-laravel` | Celá logika kupónov a zliav — percentá, pevné sumy, doprava zdarma, stropy, limity použitia. |
| `credits-for-laravel` | Platba kreditom v obchode a refundácie ako kredit. |
| `addresses-for-laravel` | Adresár zákazníka → zafixovaná fakturačná a doručovacia adresa objednávky. |
| `sluggable-for-laravel` | Slugy obchodov, produktov a kategórií pre každý jazyk, jedinečnosť a route binding. |
| `package-toolkit-for-laravel` | Builder providera, makro stĺpca morphKey, resolvery modelov a sekcia about. |

## Čo provider zaregistruje

- Zlúči config/shops.php, zaregistruje ShopsManager (koreň fasády Shops) ako singleton a CurrentShop ako scoped väzbu — resetuje sa pre každý request a každý job vo fronte. Globálny alias Shops pochádza z composer.json balíka.
- Z konfigurácie naviaže šesť driverov — NumberGenerator, TaxResolver, PaymentGateway, ShippingMethod, DiscountResolver a VerifiedPurchaseResolver.
- Zaregistruje makro Blueprintu morphKey, ktoré používajú migrácie objednávok, košíkov a pohybov zásob.
- Zaregistruje každú položku shops.attributes.definitions v registri atribútov.
- Na OrderRefunded počúva cez GrantStoreCreditOnRefund.
- Pridá sekciu Shops do php artisan about.

```bash
php artisan about --only=shops
```

Sekcia about zobrazí modely obchodu a kupónu, menu, typ ceny, resolver daní a počet daňových tried, platobnú bránu, kredit v obchode, spôsob dopravy, resolver zliav, čísla objednávok, prah nízkej zásoby, počet atribútov, médiá katalógu, overené nákupy, záložný jazyk a históriu slugov. Nakonfigurované triedy sa zobrazia len základným názvom; názvy daňových tried, atribútov, skupiny kreditov ani disku médií sa nikdy nevypíšu.

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