Public Popups
Verilen URL ve sayfa bağlamına göre aktif, yayında olan popup kayıtlarını döndürür. Frontend tarafında hangi popup'ların gösterileceğini belirlemek için kullanılır.
Base URL: /api/public/popups
Yetkilendirme: X-Api-Key
Modul: popups
Controller AllowAnonymous olsa da tenant çözümleme için X-Api-Key header'i gereklidir.
GET /resolve
Geçerli sayfa URL'sine ve opsiyonel pageCode'a göre eşleşen, yayınlanmış popup'ları döndürür.
Headers:
X-Api-Key: customer-api-key
Query Parametreleri:
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
url | string | Evet | Geçerli sayfa URL'si veya path'i (örn. /kampanya/yaz) |
lang | string | Hayır | İstenen dil kodu. Verilmezse tenant varsayılan dili kullanılır |
pageCode | string | Hayır | PageCode match tipindeki kurallarda eşleşme için sayfa kodu |
Örnek:
GET /api/public/popups/resolve?url=/kampanya/yaz&lang=tr&pageCode=summer-sale
Response — 200 OK:
{
"success": true,
"data": [
{
"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"code": "home-spring-campaign",
"name": "Homepage Spring Campaign",
"priority": 100,
"triggerType": "Delay",
"delaySeconds": 5,
"showOncePerSession": true,
"openInNewTab": false,
"languageCode": "tr",
"title": "İlk siparişte %20 indirim",
"description": "Nisan ayına özel kampanya",
"body": "Kupon kodu: ILK20",
"ctaLabel": "Kampanyayı Gör",
"ctaUrl": "https://example.com/kampanya",
"imageUrl": "https://cdn.example.com/popups/banner.webp",
"mobileImageUrl": "https://cdn.example.com/popups/banner-mobile.webp"
}
]
}
Eşleşen popup yoksa data boş dizi ([]) döner.
Çözümleme Mantığı
Popup Filtresi
Endpoint yalnızca aşağıdaki koşulları sağlayan popup'ları değerlendirir:
status = PublishedisActive = truepublishStartDateboş veya geçmiştepublishEndDateboş veya gelecekte
Kural Eşleştirme (matchType)
Her popup'ın en az bir aktif kuralı (rule.isActive = true) verilen URL ile eşleşmeli:
| matchType | Davranış |
|---|---|
Homepage | URL / veya boşsa eşleşir |
ExactUrl | URL, pattern ile tam eşleşmeli (büyük/küçük harf duyarsız) |
PrefixUrl | URL, pattern ile başlamayı (büyük/küçük harf duyarsız) |
PageCode | pageCode query parametresi, pattern ile eşleşmeli |
URL normalizasyonu: tam URL verilirse yalnızca path kısmı kullanılır. Path / ile başlamıyorsa otomatik eklenir.
Sıralama
Eşleşen popup'lar şu sıraya göre döner:
prioritybüyükten küçüğe- Aynı priority'de
createdAteskiden yeniye
Dil Seçimi (Fallback)
Çeviri seçiminde şu öncelik sırası uygulanır:
langparametresiyle eşleşen çeviri- Tenant varsayılan dili çevirisi
- Mevcut ilk çeviri
Dönen Alanlar
data içindeki her kayıt backend'deki PublicPopupResponse yapısına karşılık gelir:
id,code,name,prioritytriggerType,delaySecondsshowOncePerSession,openInNewTablanguageCodetitle,description,bodyctaLabel,ctaUrlimageUrl,mobileImageUrl
Olası Hatalar
| Kod | Durum |
|---|---|
400 | url parametresi boş veya eksik |
403 | popups modülü müşteriye atanmamış veya pasif |