Ana içeriğe geç

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

bilgi

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:

ParametreTipZorunluAçıklama
urlstringEvetGeçerli sayfa URL'si veya path'i (örn. /kampanya/yaz)
langstringHayırİstenen dil kodu. Verilmezse tenant varsayılan dili kullanılır
pageCodestringHayırPageCode 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ığı

Endpoint yalnızca aşağıdaki koşulları sağlayan popup'ları değerlendirir:

  • status = Published
  • isActive = true
  • publishStartDate boş veya geçmişte
  • publishEndDate boş veya gelecekte

Kural Eşleştirme (matchType)

Her popup'ın en az bir aktif kuralı (rule.isActive = true) verilen URL ile eşleşmeli:

matchTypeDavranış
HomepageURL / veya boşsa eşleşir
ExactUrlURL, pattern ile tam eşleşmeli (büyük/küçük harf duyarsız)
PrefixUrlURL, pattern ile başlamayı (büyük/küçük harf duyarsız)
PageCodepageCode 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:

  1. priority büyükten küçüğe
  2. Aynı priority'de createdAt eskiden yeniye

Dil Seçimi (Fallback)

Çeviri seçiminde şu öncelik sırası uygulanır:

  1. lang parametresiyle eşleşen çeviri
  2. Tenant varsayılan dili çevirisi
  3. 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, priority
  • triggerType, delaySeconds
  • showOncePerSession, openInNewTab
  • languageCode
  • title, description, body
  • ctaLabel, ctaUrl
  • imageUrl, mobileImageUrl

Olası Hatalar

KodDurum
400url parametresi boş veya eksik
403popups modülü müşteriye atanmamış veya pasif