Skip to content

Kupon Yönetimi

Endpoint'ler

GET   /api/v1/admin/coupons                  listele (sıralı -createdAt)
POST  /api/v1/admin/coupons                  oluştur
PATCH /api/v1/admin/coupons/:code            güncelle
POST  /api/v1/admin/coupons/:code/archive    arşivle

Kupon alanları

typescript
{
  code: string,                                       // 2–40 karakter, kayıtta büyük harfe çevrilir, benzersiz
  description: string,                                // 0–500 karakter
  kind: "percent" | "fixed" | "trial_extension",
  value: number,                                      // >= 0; anlamı kind'e bağlıdır
  currency: "TRY" | "USD" | null,                     // percent / trial_extension için null
  applies_to: ("new" | "renewal" | "upgrade")[],      // varsayılan ["new", "upgrade"]
  allowed_plans: string[],                            // plan kodları; boş = hepsi
  min_amount: number,                                 // hak kazanmak için minimum sepet değeri
  usage_limit: number,                                // 0 = sınırsız
  usage_count: number,                                // yalnız okunur, kullanımda artırılır
  single_use_per_user: boolean,                       // varsayılan true
  valid_from: Date | null,
  valid_until: Date | null,
  is_active: boolean,
}

Davranış

  • percent, alt-toplamdan value yüzde indirim yapar.
  • fixed, value birim currency indirim yapar.
  • trial_extension, planın denemesine value ekstra gün ekler.
  • single_use_per_user, aynı kullanıcının kodu iki kez kullanmasını engeller; tek alıcı için admin-verilen kodlar tipik olarak bunu açık bırakır.

Kodlar büyük/küçük harf duyarsız

Kod oluşturma anında büyük harfe çevrilir ve trim'lenir; checkout büyük/küçük harfe duyarsız eşleştirir.

İlgili