NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

Open source

Coupons for Laravel

Inštalácia
composer require roundly-consulting/coupons-for-laravel
Vyžaduje: PHP ^8.4 · Laravel ^12.0|^13.0

Prehľad

Kompletný systém zľavových kupónov pre Laravel. Vytvárajte kupóny s pevnou či percentuálnou zľavou alebo s dopravou zadarmo, s uzamknutím meny, minimálnou hodnotou nákupu, obdobím platnosti a celkovým limitom či limitom na zákazníka. Pri uplatnení sa každé pravidlo overí a použitie započíta v jednej uzamknutej databázovej transakcii — limit 100 znamená presne 100 aj pri náraze zákazníkov. Každá suma je presné Money z money-for-laravel, správne aj pre meny bez desatinných miest či s tromi. Licencia MIT a minimum závislostí: Laravel, ext-bcmath a dva základné balíky Roundly — žiadne externé runtime závislosti.

Čo získate

Tri typy zliav

Pevné sumy v najmenších jednotkách meny, percentá v bázických bodoch s voliteľným stropom a doprava zadarmo ako príznak pre vlastný riadok dopravy.

Pravidlá pod vašou kontrolou

Uzamknutie na menu, minimálna hodnota nákupu, obdobie platnosti, celkový limit použití a limit na zákazníka — vrátane nákupu bez registrácie.

Atomické uplatnenie

Všetky kontroly aj navýšenie počtu použití bežia v jednej transakcii nad riadkom uzamknutým cez lockForUpdate, takže limit 100 znamená presne 100.

Jedna kontrola oprávnenosti

Coupons::check(), redeem(), isRedeemableBy() aj pravidlo Redeemable zdieľajú jednu kontrolu — pevné poradie, presné výnimky a preložiteľné hlásenia.

Presné peniaze

Každá suma je Money z money-for-laravel — presná aj pre meny bez desatinných miest či s tromi, nikdy pod nulou a kombinovateľná v DiscountStack.

Udalosti, príkazy a fake

Päť udalostí, núdzové ukončenie platnosti, príkaz na čistenie a Coupons::fake() — záznamník s asserciami pre každé vytvorenie, uplatnenie, odvolanie aj čistenie.

Fasáda, DI alebo akcie

Volajte fasádu Coupons, injektujte CouponManager s rovnakým API alebo spúšťajte jednoúčelové akcie vo vlastných jobs — za všetkými tromi je jedna cesta.

Dokumentácia

Inštalácia

Inštalácia cez Composer, publikovanie a spustenie dvoch migrácií a voliteľne publikovanie konfigurácie a prekladov.

Konfigurácia

Každý konfiguračný kľúč, jeho predvolená hodnota a env premenná — model kupónu, typ kľúča zákazníka, mena, sledovanie, formát kódov a route key.

Peniaze, jednotky a uzamknutie meny

Ako sa ukladá hodnota kupónu — v najmenších jednotkách meny alebo v bázických bodoch — a kedy musí byť kupón uzamknutý na jednu menu.

Fasáda Coupons

Jeden vstupný bod na všetko — vytvorenie, vyhľadanie, kontrola, náhľad, uplatnenie, odvolanie a čistenie kupónov, priamo alebo cez Coupons::code().

DI a akcie

Namiesto fasády injektujte CouponManager alebo jednoúčelové akcie spúšťajte sami — vrátane úplnej mapy metód fasády na akcie.

Vytváranie kupónov

Vytvárajte kupóny s pevnou, percentuálnou zľavou aj s dopravou zadarmo cez CreateCouponData — konštruktory, stropy, minimum a validácia.

Generované kódy

Nastavte dĺžku a abecedu generovaných kódov — kryptograficky bezpečná náhoda, kódy bez ohľadu na veľkosť písmen a validácia pri každom použití.

Uplatnenie kupónu

Overenie a uplatnenie v jednom atomickom kroku — uzamknutá transakcia, pevné poradie kontrol, RedemptionResult a výnimka pre každé zlyhanie.

Model Coupon

Metódy životného cyklu, kontroly stavu, casty a výpočet zľavy na modeli Coupon — activate, expire, limity, apply a discountFor.

Pomocné metódy na zobrazenie

Metódy bez výnimiek pre šablóny a API — zostávajúce použitia, percento využitia, oprávnenosť zákazníka a bezpečný náhľad zľavy.

Zákazníci a limity na zákazníka

Pridajte HasCoupons do modelu User, obmedzte použitia na zákazníka, čítajte históriu uplatnení a používajte kľúče UUID alebo ULID.

Validačné pravidlo

Overte pole so zľavovým kódom pravidlom Redeemable — rovnaké kontroly ako pri uplatnení a preložiteľné hlásenie pre prvý dôvod zlyhania.

Typy zliav a kombinovanie

Enum DiscountType — názvy pre administráciu, prevod na Discount z money a kombinovanie kupónov s ďalšími zľavami v DiscountStack.

Query scopes a route binding

Vyhľadávajte aktívne, expirované, vyčerpané a uplatniteľné kupóny cez query scopes a viažte parameter {coupon} podľa kódu alebo id.

Udalosti

Päť udalostí pre analytiku, odhaľovanie podvodov a upozornenia na vypredanie — kupón vytvorený, uplatnený, odmietnutý, vyčerpaný či odvolaný.

Artisan príkazy

Núdzový vypínač, ktorý kupónom okamžite ukončí platnosť, a príkaz na archiváciu alebo zmazanie dávno expirovaných kupónov.

Výnimky

Jedna hierarchia pod CouponException — zachyťte celý balík, každý dôvod, prečo kupón nemožno uplatniť, alebo každú príčinu zvlášť.

Testovanie

Coupons::fake() zaznamená vytvorenia, uplatnenia, odmietnutia, odvolania aj čistenia bez zápisu do databázy — plus stavy factory pre databázové testy.

Rozširovanie

Použite vlastnú podtriedu Coupon cez coupons.model a využite kontrolu oprávnenosti vo vlastných tokoch objednávky.

Databázová schéma

Tabuľky coupons a coupon_redemptions stĺpec po stĺpci — typy, predvolené hodnoty, zdieľaný stĺpec meny a soft deletes.

Požiadavky

PHP 8.4+ s ext-bcmath, Laravel 12 alebo 13, MySQL/MariaDB, PostgreSQL alebo SQLite a dva balíky Roundly, ktoré nainštaluje Composer.

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

Odoslaní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.