Etkinlik & Aktivite · 3 Modlu Satış

Etkinlik & Aktivite Satışı — tek motorda gala, tur ve kiralama

Aurora'nın etkinlik modülü, tek-seferlik "günü belli etkinlik"ten GetYourGuide tarzı üç modlu bir aktivite/rezervasyon motoruna dönüşmüştür. Yılbaşı galasından husky turuna, ski ekipman kiralamasından balina safarisine kadar her deneyimi tek panelden satar; kapasite beyni, canlı doluluk takvimi ve yaş kademeli çocuk fiyatı ile aşırı satışı kökten önler.

Aurora etkinlik ve aktivite satış paneli — seans, kapasite ve doluluk ekranı
Neden önemli

Oda dışı gelir, otelin gizli kâr merkezi

Konaklama geliri bir tavan koyar; deneyim satışı ise sınır tanımaz. Aurora, otelinizin çevresindeki her aktiviteyi — tur, seans, gala, kiralama — doğrudan kendi web sitenizden ve resepsiyonunuzdan satılabilir hale getirir. Satılan miktar daima event_reservations kaydından canlı okunur; iki farklı beyin (EventAvailability kapasite, EventPricing fiyat) her deneyimde tek gerçek kaynak olarak çalışır. Böylece "koltuk kalmadı ama sistem sattı" ya da "ön yüzde şu fiyat, kasada bu fiyat" çelişkileri yapısal olarak imkânsız hale gelir.

Etkinlik gelir akışı ve kapasite yönetimi şeması
Üç mod, tek motor

Her deneyim tipi için doğru satış modeli

Etkinliğinizin doğasına göre modu seçin; kapasite hesabı, doluluk takvimi ve fiyat kırılımı her üç modda da aynı motordan geçer.

Mod 1 — Single

Tek tarih ve saatli etkinlik: yılbaşı galası, konser, özel akşam yemeği. Tek event_start_date/time, koltuk kapasitesi ve canlı kalan yer.

Mod 2 — Scheduled

Kural bazlı seanslı tur: husky turu, balina safarisi. Haftanın günleri (JSON), günde çok seans, her seans ayrı kapasiteli. Ön yüzde takvim → gün → seans seçimi.

Mod 3 — Rental

Gün×adet kiralama: ski/ekipman, bisiklet, tekne. Tarih aralığı × stok, gün başına fiyat (per_day), min/max gün sınırı ve gün bazlı stok kontrolü.

Kapasite beyni ve canlı doluluk hesabı şeması
Kapasite beyni

EventAvailability — aşırı satışa karşı tek gerçek kaynak

Satılan miktar hiçbir zaman bir sayaçtan tahmin edilmez; her zaman event_reservations kaydından canlı hesaplanır (durum pending/confirmed, ödeme başarısız hariç). Bekleyen rezervasyonlar da kontenjan tutar — böylece havale veya kart ödemesi beklenirken aynı koltuğun ikinci kez satılması engellenir.

  • remaining / canBook / soldCount / rentalSoldOnDay — hepsi canlı, hepsi tek beyinden.
  • Manuel bloke ve kapasite override (event_availability) ile istisna günleri yönetin.
  • Denormalize current_capacity yalnızca gösterim; karar daima canlı kayıttan.
Satışı hızlandıran yetenekler

Müşteri tıklamadan doluluğu, fiyatı ve etiketi görür

Canlı doluluk takvimi

Flatpickr takviminde her hücre boyanır: yeşil "yer var", turuncu "az yer kaldı" (kalan ≤ kapasitenin %20'si), kırmızı üstü çizili "Dolu" (tıklanamaz). Her günün altında kalan yer + açıklamalı gösterge.

Yaş kademeli çocuk fiyatı

Kademe tablosu (event_child_tiers, age_min dâhil / age_max hariç): ücretsiz, yüzde veya sabit. Kucakta bebek (0-6) ücretsiz ve yer düşmez. Fiyat sunucuda hesaplanır; ön yüz tutarına asla güvenilmez.

Etkinlik rozetleri

"Çocuklar İçin / Aileler İçin / Gruplara Özel" gibi etiketler; hazır şablon renkleri, canlı önizleme, kart ve detayda görsel üstünde. "0-6 yaş ücretsiz" rozeti listede otomatik çıkar.

Fiyat snapshot (değişmezlik)

Rezervasyon anında fiyat kırılımı price_breakdown olarak dondurulur. Kural ya da kademe sonradan değişse de geçmiş rezervasyonun tutarı sabit kalır.

Nasıl çalışır

Dört adımda etkinlik satışına başlayın

Modu ve tipi seçin

Tip seçimli formda single / scheduled / rental alanları açılır; seanslar, çocuk fiyatı, kategori ve rozet tek ekranda tanımlanır (CKEditor + görsel).

Kapasite ve fiyatı kurun

Koltuk/stok kapasitesi, yaş kademeleri ve kiralama gün sınırlarını girin. Fiyat motoru üç modda da aynı kırılımı üretir.

Yayınlayın ve sıralayın

Etkinlikleri sürükle-bırak (SortableJS) sıralayın, durumu AJAX dropdown ile yönetin; ön yüz doluluk takvimi otomatik canlanır.

Rezervasyonları yönetin

Rezervasyon listesinde durum/ödeme rozetleri, onayla/iptal/ödendi ve toplu işlemler. Ödeme geçitleri (?type=event) değişmeden bağlıdır.

Teknik güç

İki beyin, tek gerçek: kapasite ve fiyat

Motor EventAvailability (kapasite) ve EventPricing (fiyat) olmak üzere iki tek-kaynak kütüphane üzerine kuruludur. Rezervasyon durumu, ödeme durumu ve iptaller anlık envanteri belirler; fiyat ise sunucu tarafında hesaplanıp ön yüze güvenmeden doğrulanır. Modül 10 dilde tam yerelleştirilmiştir (Events.php ~116 anahtar) ve her etkinlik kendi para biriminde tutulup görüntüleme için doğru kur çevrimiyle sunulur.

  • Pending rezervasyon kontenjan tutar → havale/ücretli akışta aşırı satış bug'ı çözüldü.
  • AJAX etkinlik/{slug}/musaitlik ile gün ve seans müsaitliği anlık JSON.
  • Rozet yetkisi resepsiyon + patron + root; 10 dil arayüz.
EventAvailability ve EventPricing motor mimarisi
SSS

Etkinlik & aktivite satışı hakkında sık sorulanlar

Üç mod desteklenir: Single (tek seferlik gala/konser), Scheduled (kural bazlı seanslı tur — günde çok seans, her seans ayrı kapasiteli) ve Rental (gün×adet ekipman/araç kiralama). Üçü de aynı kapasite beyni ve fiyat motorundan geçtiği için deneyim çeşidiniz ne olursa olsun tutarlı çalışır.

Satılan miktar daima event_reservations kaydından canlı okunur. Bekleyen (pending) rezervasyonlar da kontenjan tutar; böylece havale veya ücretli ödeme beklenirken aynı koltuk ikinci kez satılamaz. Tek gerçek kaynak EventAvailability motorudur.

Yaş kademeli tablo (age_min dâhil, age_max hariç) ile her yaş aralığına ücretsiz, yüzde veya sabit fiyat tanımlarsınız. Kucakta bebek (0-6) ücretsiz olabilir ve kapasiteden yer düşmez. Fiyat sunucuda EventPricing ile hesaplanır; ön yüz tutarına asla güvenilmez.

Evet. Etkinlikler Aurora'nın ön yüz rezervasyon motoruna entegredir; müşteri yaş seçici ve canlı fiyat kırılımıyla doğrudan sitenizden satın alır. Ödeme geçitleri (Iyzico/Stripe/PayTR/ZiraatPay/VirtualPos) etkinlik akışına ?type=event ile bağlıdır.

Oda dışı gelirinizi büyütmeye bugün başlayın

Gala, tur ve kiralamayı tek panelden satın; kapasiteyi koruyun, fiyatı tutarlı tutun.