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

Všetky výnimky sú v RoundlyConsulting\Coupons\Exceptions a dedia z CouponException, čo je RuntimeException, takže celý balík zachytíte jedným typom:

CouponException (RuntimeException)       — catch-all for the package
├── CouponNotFound                       ::forCode(string $code)
├── CouponCodeTaken                      ::forCode(string $code, ?Throwable $previous = null)
├── InvalidCouponDefinition              ::blankCode()
│                                        ::fixedWithoutCurrency(string $code)
│                                        ::percentOutOfRange(int $basisPoints)
│                                        ::negativeValue(int $value)
├── InvalidCouponConfiguration           ::invalidCharset(string $reason)  (+ bad coupons.code.length)
│                                        ::codeSpaceExhausted(int $attempts)
└── CouponNotRedeemable                  — catch-all for "cannot redeem"
    ├── CurrencyMismatch                 ::forCode(string $code, string $expected, string $actual)
    ├── MinimumSpendNotMet               ::forCode(string $code, Money $minimumSpend)
    ├── CouponExpired                    ::forCode(string $code)  (expired or not yet active)
    ├── CouponAtMaxUsage                 ::forCode(string $code)
    └── CouponAlreadyRedeemed            ::forCode(string $code)  (per-redeemer cap)
VýnimkaDedí zKedy sa vyhodí
CouponNotFoundCouponExceptionKódu nezodpovedá žiadny kupón — findOrFail(), preview(), redeem(), revoke(). check() namiesto toho vráti NotFound.
CouponCodeTakenCouponExceptionExplicitný kód, ktorý už má nezmazaný kupón, v akejkoľvek veľkosti písmen — aj keď ho súbežná požiadavka obsadí medzi kontrolou a zápisom.
InvalidCouponDefinitionCouponExceptionPrázdny explicitný kód, pevná zľava bez meny, záporná pevná hodnota alebo percento mimo 0..10 000 bázických bodov.
InvalidCouponConfigurationCouponExceptionNepoužiteľné code.length alebo code.charset, route_key či default_currency, ktorý nie je reťazcom, prípadne vyčerpaný priestor kódov. Uvádza kľúč; hlásenie o code.charset abecedu nikdy nevypíše.
CouponNotRedeemableCouponExceptionZákladný typ pre každý dôvod, prečo kupón nemožno uplatniť.
CurrencyMismatchCouponNotRedeemableKupón je uzamknutý na inú menu, než je mena ceny.
MinimumSpendNotMetCouponNotRedeemableCena je pod minimálnou hodnotou nákupu.
CouponExpiredCouponNotRedeemablePlatnosť uplynula alebo ešte nie je aktívny.
CouponAtMaxUsageCouponNotRedeemableCelkový limit použití je vyčerpaný.
CouponAlreadyRedeemedCouponNotRedeemableLimit na zákazníka je vyčerpaný.

Chyby na úrovni peňazí

Niektoré chyby pochádzajú z money-for-laravel: RoundlyConsulting\Money\Exceptions\CurrencyMismatch pri priamom volaní discountFor(), apply() alebo meetsMinimumSpend() s nezhodnou menou — odlišná od CurrencyMismatch balíka pri uplatnení — a ďalej AmountOverflow, InvalidMoneyValue a RoundingNecessary pri percente jemnejšom ako celé bázické body.

Coupons::prune() so záporným oknom vyhodí obyčajnú InvalidArgumentException, nie CouponException — okno v budúcnosti by zmazalo platné kupóny.

Texty výnimiek sú anglické a určené vývojárom, napr. „Coupon [SAVE20] is expired or not yet active.“ Pre texty pre zákazníkov použite Coupons::check(), pravidlo Redeemable alebo RedemptionFailureReason::translationKey().

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.