Popups
Popup modulu; kampanya, duyuru veya yonlendirme popup'larini cok dilli icerik, yayin penceresi ve URL/page hedefleme kurallari ile yonetmek icin kullanilir.
Base URL: /api/tenant/popups
Yetkilendirme: Bearer Token + X-Api-Key
Modul: popups
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
X-Api-Key: customer-api-key
Veri Modeli
code,name,status,isActive,prioritypublishStartDate,publishEndDatetriggerType(OnPageLoad,Delay) vedelaySecondsshowOncePerSession,openInNewTabtranslations[]:title,description,body,ctaLabel,ctaUrl,imageMediaFileId,mobileImageMediaFileIdrules[]:matchType(Homepage,ExactUrl,PrefixUrl,PageCode),pattern,sortOrder,isActive
translations icinde varsayilan dil kaydi zorunludur. Ayrica en az bir rules kaydi bulunmalidir.
POST /
Yeni popup kaydi olusturur.
Request Body:
{
"code": "home-spring-campaign",
"name": "Homepage Spring Campaign",
"status": "Published",
"isActive": true,
"priority": 100,
"publishStartDate": "2026-04-01T00:00:00Z",
"publishEndDate": "2026-04-30T23:59:59Z",
"triggerType": "Delay",
"delaySeconds": 5,
"showOncePerSession": true,
"openInNewTab": false,
"translations": [
{
"languageId": "9cd14a82-1111-1111-1111-111111111111",
"title": "Ilk sipariste %20 indirim",
"description": "Nisan ayina ozel kampanya",
"body": "Kupon kodu: ILK20",
"ctaLabel": "Kampanyayi Gor",
"ctaUrl": "https://example.com/kampanya",
"imageMediaFileId": "11111111-1111-1111-1111-111111111111",
"mobileImageMediaFileId": "22222222-2222-2222-2222-222222222222"
}
],
"rules": [
{
"matchType": "Homepage",
"pattern": "/",
"sortOrder": 1,
"isActive": true
}
]
}
Response - 201 Created: data alani olusturulan popup kaydini (id, metadata, translations, rules) dondurur.
GET /
Popup kayitlarini filtreli ve sayfali listeler.
Query Parametreleri:
| Parametre | Tip | Varsayilan | Aciklama |
|---|---|---|---|
page | int | 1 | Sayfa numarasi |
pageSize | int | 10 | Sayfa basina kayit |
status | Draft | Published | Archived | - | Durum filtresi |
isActive | bool | - | Aktiflik filtresi |
search | string | - | code, name, translation title aramasi |
lang | string | tenant default dili | Liste satirinda title secilecek dil kodu |
Response - 200 OK: PaginatedResult<PopupListResponse> dondurur.
GET /{id}
Tek popup kaydini id ile detayli getirir (translations ve rules dahil).
GET /by-code/{code}
Popup detayini benzersiz code alani ile getirir.
PUT /{id}
Mevcut popup kaydini gunceller.
Not: translations ve rules alanlari replace mantigi ile guncellenir; gonderilen liste kayitlari esas alinir.
DELETE /{id}
Popup kaydini soft delete ile siler.
Response - 204 No Content
Olasi Hatalar
| Kod | Durum |
|---|---|
400 | Gecersiz request veya eksik zorunlu alan |
401 | Token eksik/gecersiz |
403 | Tenant yetkisi veya X-Api-Key sorunu |
404 | Popup bulunamadi |
409 | code cakisiyor |