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

Rozširovanie

Vlastný model kupónu

Vytvorte podtriedu Coupon a nastavte na ňu coupons.model. Cez ňu idú všetky dopyty manažéra, akcií a pravidla, oba Artisan príkazy aj relácia coupon pri uplatnení:

namespace App\Models;

use RoundlyConsulting\Coupons\Models\Coupon;

class ShopCoupon extends Coupon
{
    protected $table = 'coupons';

    // your own relations, scopes, accessors and model events
}
// config/coupons.php
'model' => App\Models\ShopCoupon::class,
  • Ak sa trieda volá inak, nastavte $table = 'coupons' — Eloquent by inak odvodil tabuľku z názvu triedy. Relácia uplatnení sa explicitne viaže na coupon_id, takže názov triedy môže byť ľubovoľný.
  • Hodnota, ktorá nie je Coupon ani jeho podtriedou, vyhodí InvalidConfigurationException z toolkitu s názvom kľúča — balíkový model ju nikdy potichu nenahradí.
  • CouponRedemption je final a vymeniť sa nedá.

Opätovné použitie kontroly oprávnenosti

Vo väčšine tokov vám postačí Coupons::check() — prvý dôvod zlyhania vráti cez fasádu a fake ho vidí. V pozadí je jediným zdrojom pravdy o oprávnenosti RedemptionGuard. firstFailure() vráti prvý neúspešný RedemptionFailureReason — alebo null — bez vyhodenia výnimky; soft-deleted kupón ohlási najprv NotFound a s cenou null sa preskočia kontroly meny a minima. throwFor() vyhodí zodpovedajúcu výnimku vrátane CouponNotFound:

use RoundlyConsulting\Coupons\Support\RedemptionGuard;

$guard = app(RedemptionGuard::class);

$reason = $guard->firstFailure($coupon, $cartTotal, $user);   // ?RedemptionFailureReason — never throws

if ($reason !== null) {
    $message = __($reason->translationKey(), ['code' => $coupon->code]);   // customer-facing text

    $guard->throwFor($coupon, $reason, $cartTotal);                       // or raise the matching exception
}

Ďalšie možnosti

  • Udalosti — analytika, odhaľovanie podvodov, upozornenia na vypredanie a auditné záznamy nad piatimi udalosťami.
  • Preklady — publikujte coupons-translations a upravte alebo preložte hlásenia a názvy.
  • Zákazníci s UUID alebo ULID — nastavte coupons.key_type pred migrovaním.

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.