---
title: "Udalosti — Coupons for Laravel | Roundly"
description: "Päť udalostí pre analytiku, odhaľovanie podvodov a upozornenia na vypredanie — kupón vytvorený, uplatnený, odmietnutý, vyčerpaný či odvolaný."
url: https://roundly-consulting.com/sk/open-source/navody/coupons-for-laravel/udalosti
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Coupons for Laravel](https://roundly-consulting.com/sk/open-source/navody/coupons-for-laravel.md)

# Udalosti

Všetky udalosti sú v RoundlyConsulting\\Coupons\\Events. CouponCreated, CouponRedeemed, CouponExhausted a CouponRevoked implementujú ShouldDispatchAfterCommit z Laravelu; CouponRedemptionFailed sa spustí okamžite:

| Udalosť | Kedy | Údaje |
| --- | --- | --- |
| `CouponCreated` | Kupón vznikne cez create() alebo generate() — nie cez createQuietly(). | `Coupon $coupon` |
| `CouponRedeemed` | Uplatnenie prebehne úspešne. | `Coupon $coupon, RedemptionResult $result` |
| `CouponRedemptionFailed` | Pokus o uplatnenie je odmietnutý — výnimka sa aj tak vyhodí. | `string $code, RedemptionFailureReason $reason, ?Model $redeemer` |
| `CouponExhausted` | Uplatnenie spotrebuje posledné dostupné použitie (spustí sa raz). | `Coupon $coupon` |
| `CouponRevoked` | Kupón je odvolaný cez Coupons::revoke(), Coupons::expireAll() alebo coupons:expire (raz na kupón). | `Coupon $coupon` |

```php
use Illuminate\Support\Facades\Event;
use RoundlyConsulting\Coupons\Events\CouponExhausted;
use RoundlyConsulting\Coupons\Events\CouponRedeemed;
use RoundlyConsulting\Coupons\Events\CouponRedemptionFailed;

Event::listen(function (CouponRedeemed $event): void {
    logger()->info('Coupon redeemed', [
        'code' => $event->coupon->code,
        'discount' => (string) $event->result->discount, // "12.50 EUR"
    ]);
});

Event::listen(function (CouponRedemptionFailed $event): void {
    logger()->warning('Coupon rejected', [
        'code' => $event->code,
        'reason' => $event->reason->value, // e.g. "expired", "at_max_usage"
    ]);
});

Event::listen(function (CouponExhausted $event): void {
    logger()->info('Coupon exhausted', ['code' => $event->coupon->code]);
});
```

## Záruky

- CouponRedemptionFailed sa spustí raz pri každom odmietnutom pokuse o uplatnenie — nikdy z Coupons::check(), pravidla Redeemable ani z isRedeemableBy() — a zodpovedajúca výnimka sa aj tak vyhodí. $event->reason je RedemptionFailureReason: not\_found, currency\_mismatch, minimum\_spend\_not\_met, expired, at\_max\_usage alebo already\_redeemed.
- CouponExhausted sa spustí presne raz — pri uplatnení, ktoré dotiahne usage na max\_usage — nikdy pri neobmedzených kupónoch a už nikdy pri neskoršom odmietnutom pokuse.
- CouponRevoked sa spustí pri Coupons::revoke() a raz pre každý kupón, ktorému ukončí platnosť Coupons::expireAll() alebo coupons:expire.
- CouponCreated sa pri createQuietly() nespustí.

## Udalosti a transakcie

CouponCreated, CouponRedeemed, CouponExhausted a CouponRevoked počkajú, kým sa vonkajšia transakcia — vaša alebo vlastná transakcia uplatnenia — potvrdí, a ak sa vráti späť, nespustia sa vôbec. Objednávka, ktorá uplatní kupón a potom jej zlyhá platba, tak uplatnenie nikdy neohlási.

CouponRedemptionFailed sa spustí okamžite, aj vnútri transakcie: pokus sa udial tak či tak. Neúspešná kontrola ju vyvolá vnútri uzamknutej transakcie uplatnenia, ktorá sa pri vyhodení výnimky vráti späť, takže databázové zápisy synchrónneho listenera CouponRedemptionFailed sa vrátia spolu s ňou. Neznámy kód sa odmietne ešte pred otvorením transakcie.

## 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/coupons-for-laravel.md)
