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:
composer require roundly-consulting/shops-for-laravel
php artisan vendor:publish --tag="shops-migrations"
php artisan migrateMigrá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ú:
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 migrateJediná 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.
# .env — fixed once the migrations have run
SHOPS_KEY_TYPE=ulid # bigint (default) | uuid | ulid// 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ť:
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.
php artisan about --only=shopsSekcia 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 kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
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.