Açılış Uçları
Widget ve SDK’nın açılışta çektiği yapılandırma: config, kampanyalar, scriptler, ürün sayıları
Widget'ın ve uygulama SDK'sının açılışta çektiği yapılandırma uçları. Widget kullanıyorsanız bunları çağırmanız gerekmez; kendi arayüzünü kuran (headless) bir entegrasyon ya da sunucu için buradadır. Kimlik ve sözleşme kuralları API'ye Genel Bakış sayfasındadır.
Açılış: config
Widget açılışta yapılandırmanın tamamını tek istekte çeker; dört ayrı isteğin yerine geçer.
/api/v1/public/sites/{siteKey}/configKimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key
Parametreler
siteKeystring · yolzorunluKanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.
pany · sorguİstemcinin anlayabildiği protokol sürümü (güncel 4). Bu sürümün çizemeyeceği bir kampanya yanıta konmaz. Verilmezse 1.
langany · sorguZiyaretçinin ya da sayfanın dili (tr, en-GB…). Hesabın dillerinden en yakını seçilir; yoksa varsayılan dil. Tek dilli hesapta etkisi yoktur.
200 Başarılı
modulesnesne (anahtar → değer)Hesabın sözleşmesindeki modüller. Olmayan modülün içeriği aşağıda boş döner; widget o parçayı hiç indirmez.
channelnesneKanalın türü (web veya app), paylaşılan katalog okuyup okumadığı ve para birimi.
Alt alanlar (3)
typestringweb | app
sharedCatalogbooleanThe channel reads another channel's catalogue.
currencystringnull olabilir
controlGroupnesneKanalın kontrol grubu açıksa yüzdesi ve kanal kimliği; kapalıysa null. Üyelik ziyaretçi kimliğinin özetiyle hesaplanır.
null olabilir
Alt alanlar (2)
percentnumberShare of visitors held out of every surface.
channelIdstring · uuidHashed with the visitor id to decide membership.
campaignsnesne listesiYayın penceresi şu an açık olan kampanyalar (web_experience modülü yoksa boş). Test modundakiler isTestMode: true ile gelir.
Alt alanlar (15)
idstring · uuidtypestringThe campaign type (see /docs/widgets).
isTestModebooleanOnly shown to visitors in test mode (?selwise_test_mode=1).
contentJsonobjectThe type's content, in the visitor's language (?lang=).
stylesJsonobjectplacementConfigJsonobjectcustomCssstringcustomJsstringvariantIdstringvariantVersionstringvariantCustomizedbooleanvariantSnapshotJsonobjectnull olabilir
pageTargetingJsonnesnesegmentTargetingModestringall, include or exclude the listed segments.
segmentIdsstring listesiwidgetsany listesiKullanımdan kalktı, her zaman boş: widget'lar Eylül 2026'da kampanyalara birleşti.
en çok 0 öğe
recommendationsnesne listesiEtkin öneri şeritlerinin tanımı (recommendations modülü yoksa boş). Ürünler ayrıca şeridin ürünler ucundan alınır.
Alt alanlar (49)
idstring · uuidnamestringisTestModebooleanOnly shown to visitors in test mode (?selwise_test_mode=1).
displayTypestringstrategystringSee /docs/recommendations for every strategy.
maxProductsnumberproductsPerRownumberslidesPerViewnumberDesktop (1280px) slides.
slidesPerViewTabletnumberslidesPerViewMobilenumberslideGapnumberautoplaybooleanautoplaySpeednumberMilliseconds.
loopbooleanpauseOnHoverbooleanarrowStylesobjectStyle settings the widget applies as they are. Their keys follow the dashboard builder.
dotStylesobjectStyle settings the widget applies as they are. Their keys follow the dashboard builder.
titlestringIn the visitor's language (?lang=).
titleStylesobjectStyle settings the widget applies as they are. Their keys follow the dashboard builder.
subtitlestringnull olabilir
subtitleStylesobjectStyle settings the widget applies as they are. Their keys follow the dashboard builder.
containerStylesobjectStyle settings the widget applies as they are. Their keys follow the dashboard builder.
customCSSstringnull olabilir
customJSstringnull olabilir
variantIdstringvariantVersionstringvariantCustomizedbooleantriggerstringtriggerConfigobjectshowOnAllPagesbooleanincludeUrlsstring listesiexcludeUrlsstring listesipageTypesstring listesiPage kinds; empty means every kind.
containerSelectorstringnull olabilir
insertPositionstringaddToCartEnabledbooleanctaModestringadd_to_cart | review
reviewButtonTextstringcurrencystringnull olabilir
cartPlatformstringaddToCartConfigobjectcustomCartScriptstringproductCardobjectThe product card design this strip draws with (Design → Product Cards).
null olabilir
prioritynumbersegmentTargetingModestringsegmentIdsstring listesireasonCodesstring listesiWhy the strip is or is not eligible, for debugging.
eligibilityFlagsnesnelookobjectOnly on a look strip.
trackingnesneOlay toplama ayarları. geo yalnızca ülke çözülebildiğinde gelir.
Alt alanlar (11)
batchingEnabledbooleanOlaylar toplu gönderilsin mi.
batchSizenumberBir toplu gönderimdeki en çok olay sayısı.
flushIntervalnumberKuyruğun boşaltılma aralığı, saniye.
offlinePersistencebooleanGönderilemeyen olaylar tarayıcıda saklanıp sonra yeniden denensin mi.
sendBeaconOnUnloadbooleanSayfa kapanırken kalan olaylar sendBeacon ile gönderilsin mi.
maxRetriesnumberBaşarısız bir gönderimin en çok kaç kez yeniden deneneceği.
maxQueueSizenumberBellekteki kuyruğun en çok olay sayısı.
maxStorageEventsnumberTarayıcı deposunda tutulacak en çok olay sayısı.
debugModebooleanWidget konsola ayrıntılı günlük yazsın mı.
dataLayerConfigobjectVeri katmanı ayarları: sayfa türü kalıpları, izleme modülleri, çerez onayı (Ayarlar → Veri Katmanı).
geonesneZiyaretçinin ülkesi; istek başına hesaplanır, kenar sunucu ülke göndermediyse yoktur.
searchnesneArama modülü açık ve etkinse enabled: true; widget arama parçasını buna bakarak indirir.
Alt alanlar (2)
enabledbooleanisTestModebooleanenrichmentnesneZenginleştirme yuvaları, içerik değil: s seçici, p ekleme konumu, h ayrılacak yükseklik (px), k yuvayı sunucuda dolduran adlar, v sürüm damgası. İçerik enrichments ucundan gelir.
Alt alanlar (4)
enabledbooleanvobjectDigest stamp; changes whenever a rule or block changes.
slotsobject listesiSelectors the widget watches for enrichment content (s selector, p position, h reserved height, k keys).
keysstring listesionsitenesneSayfa üstü deneyler ve eylemleri. Ziyaretçinin kolu burada çözülmez; istemci kendisi hesaplar.
Alt alanlar (2)
enabledbooleanexperimentsobject listesiscenariosnesneKanalda site içi teslimat yapan yayında bir senaryo varsa true; o zaman gelen kutusu yoklanır.
Alt alanlar (1)
enabledbooleanA scenario may deliver on-site: poll /scenarios/inbox.
webPushnesneTarayıcı bildirimi için herkese açık VAPID anahtarı ve izin istemi ayarı.
Alt alanlar (3)
enabledbooleanpublicKeystringVAPID public key.
null olabilir
promptobjectnull olabilir
themenesne (anahtar → değer)Marka teması: --selwise-* token değerleri.
localenesneHesabın varsayılan dili ve tüm dilleri; metinler lang ile seçilen dilde gelir.
Alt alanlar (2)
defaultstringavailablestring listesiÖrnek yanıt
{
"modules": {
"web_experience": true,
"recommendations": true,
"search": true,
"product_enrichment": false
},
"channel": {
"type": "web",
"sharedCatalog": true,
"currency": "TRY"
},
"controlGroup": {
"percent": 10,
"channelId": "3f6c2b9e-6a41-4d6e-9d0a-2e6d4a0c5b11"
},
"campaigns": [
{
"id": "3f6c2b9e-6a41-4d6e-9d0a-2e6d4a0c5b11",
"type": "announcement_bar",
"isTestMode": true,
"contentJson": {
"text": "Bugün kargo bedava"
},
"stylesJson": {},
"placementConfigJson": {},
"customCss": "string",
"customJs": "string",
"variantId": "legacy-custom",
"variantVersion": "1.0.0",
"variantCustomized": true,
"variantSnapshotJson": {},
"pageTargetingJson": {
"showOnAllPages": true,
"includeUrls": [
"/urun/*"
],
"excludeUrls": [
"string"
]
},
"segmentTargetingMode": "all",
"segmentIds": [
"string"
]
}
],
"widgets": [],
"recommendations": [
{
"id": "3f6c2b9e-6a41-4d6e-9d0a-2e6d4a0c5b11",
"name": "Bunlar da ilginizi çekebilir",
"isTestMode": true,
"displayType": "carousel",
"strategy": "similar_products",
"maxProducts": 12,
"productsPerRow": 0,
"slidesPerView": 0,
"slidesPerViewTablet": 0,
"slidesPerViewMobile": 0,
"slideGap": 0,
"autoplay": true,
"autoplaySpeed": 0,
"loop": true,
"pauseOnHover": true,
"arrowStyles": {},
"dotStyles": {},
"title": "string",
"titleStyles": {},
"subtitle": "string",
"subtitleStyles": {},
"containerStyles": {},
"customCSS": "string",
"customJS": "string",
"variantId": "string",
"variantVersion": "string",
"variantCustomized": true,
"trigger": "page_load",
"triggerConfig": {},
"showOnAllPages": true,
"includeUrls": [
"string"
],
"excludeUrls": [
"string"
],
"pageTypes": [
"product"
],
"containerSelector": ".product-detail",
"insertPosition": "after",
"addToCartEnabled": true,
"ctaMode": "add_to_cart",
"reviewButtonText": "string",
"currency": "TRY",
"cartPlatform": "string",
"addToCartConfig": {},
"customCartScript": "string",
"productCard": {},
"priority": 0,
"segmentTargetingMode": "all",
"segmentIds": [
"string"
],
"reasonCodes": [
"string"
],
"eligibilityFlags": {
"isActive": true,
"pageTargetingConfigured": true,
"segmentTargetingRequired": true,
"containerSelectorRequired": true,
"testModeOnly": true,
"liveCartRequired": true
},
"look": {}
}
],
"tracking": {
"batchingEnabled": true,
"batchSize": 50,
"flushInterval": 30,
"offlinePersistence": true,
"sendBeaconOnUnload": true,
"maxRetries": 0,
"maxQueueSize": 0,
"maxStorageEvents": 0,
"debugMode": true,
"dataLayerConfig": {},
"geo": {
"country": "TR"
}
},
"search": {
"enabled": true,
"isTestMode": true
},
"enrichment": {
"enabled": true,
"v": {},
"slots": [
{}
],
"keys": [
"string"
]
},
"onsite": {
"enabled": true,
"experiments": [
{}
]
},
"scenarios": {
"enabled": true
},
"webPush": {
"enabled": true,
"publicKey": "string",
"prompt": {}
},
"theme": {},
"locale": {
"default": "tr",
"available": [
"tr",
"en"
]
}
}Hatalar: 400 geçersiz istek, 402 modül sözleşmede yok, 403 kanal doğrulanmamış ya da köken/anahtar yetkisiz, 404 kanal anahtarı bilinmiyor, 429 hız sınırı. Gövde biçimi için Hatalar ve Limitler.
curl -X GET 'https://api.selwise.com/api/v1/public/sites/{siteKey}/config' \
-H "x-selwise-api-key: $SELWISE_API_KEY"curl "https://api.selwise.com/api/v1/public/sites/SITE_KEY/config?p=4" \
-H "Origin: https://magaza.com"
Önbellek. Yanıt kanal başına sunucuda en fazla 5 dakika önbelleğe alınır; bir kampanyanın başlangıç ya da bitiş anı bundan yakınsa süre o ana kadar kısalır. Panelde bir değişiklik yapıldığında önbellek temizlenir. HTTP önbellek başlığı (Cache-Control) gönderilmez; kendi katmanınızda önbelleğe alırken kısa tutun.
Protokol el sıkışması: ?p=
Bir CDN client.js'i saatlerce tutar; yani sahadaki widget sürümleri karışıktır. Her sürüm, çizebildiği özellikleri bir protokol numarasıyla bildirir ve API, istemcinin yanlış çizeceği bir kampanyayı yanıttan çıkarır:
p | İstemci neyi çizer |
|---|---|
1 (varsayılan) | Yer tutucusuz içerik |
2 | Sepet yer tutucuları (cart.total gibi) |
3 | Ürün yer tutucuları (product.price gibi) |
4 | Ürün koşulları (hedeflemede ürün stoğu gibi kurallar) |
Güncel widget 4 bildirir. Kendi istemcinizi yazıyorsanız anlayamadığınız bir yer tutucunun ham hâliyle ziyaretçiye görünmemesi için bildirdiğiniz sürümü gerçek yeteneğinize eşit tutun: p=4 gönderip koşul alanlarını yok sayarsanız kampanya olması gerekenden daha geniş gösterilir. Aynı parametre senaryo gelen kutusunda ve deney ataması uçlarında da geçerlidir.
tracking-config
/api/v1/public/sites/{siteKey}/tracking-configKimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key
Parametreler
siteKeystring · yolzorunluKanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.
200 Başarılı
batchingEnabledbooleanOlaylar toplu gönderilsin mi.
batchSizenumberBir toplu gönderimdeki en çok olay sayısı.
flushIntervalnumberKuyruğun boşaltılma aralığı, saniye.
offlinePersistencebooleanGönderilemeyen olaylar tarayıcıda saklanıp sonra yeniden denensin mi.
sendBeaconOnUnloadbooleanSayfa kapanırken kalan olaylar sendBeacon ile gönderilsin mi.
maxRetriesnumberBaşarısız bir gönderimin en çok kaç kez yeniden deneneceği.
maxQueueSizenumberBellekteki kuyruğun en çok olay sayısı.
maxStorageEventsnumberTarayıcı deposunda tutulacak en çok olay sayısı.
debugModebooleanWidget konsola ayrıntılı günlük yazsın mı.
dataLayerConfigobjectVeri katmanı ayarları: sayfa türü kalıpları, izleme modülleri, çerez onayı (Ayarlar → Veri Katmanı).
geonesneZiyaretçinin ülkesi; istek başına hesaplanır, kenar sunucu ülke göndermediyse yoktur.
Alt alanlar (1)
countrystringISO 3166 country from the edge's geo headers.
Örnek yanıt
{
"batchingEnabled": true,
"batchSize": 50,
"flushInterval": 30,
"offlinePersistence": true,
"sendBeaconOnUnload": true,
"maxRetries": 0,
"maxQueueSize": 0,
"maxStorageEvents": 0,
"debugMode": true,
"dataLayerConfig": {},
"geo": {
"country": "TR"
}
}Hatalar: 400 geçersiz istek, 402 modül sözleşmede yok, 403 kanal doğrulanmamış ya da köken/anahtar yetkisiz, 404 kanal anahtarı bilinmiyor, 429 hız sınırı. Gövde biçimi için Hatalar ve Limitler.
curl -X GET 'https://api.selwise.com/api/v1/public/sites/{siteKey}/tracking-config' \
-H "x-selwise-api-key: $SELWISE_API_KEY"Yanıt config içindeki tracking nesnesiyle aynıdır. Kanal başına 10 dakika önbelleğe alınır (geo hariç). Widget artık bunu yalnızca config başarısız olduğunda ayrıca çağırır.
integrations
/api/v1/public/sites/{siteKey}/integrationsKimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key · Widget ve SDK trafiği (istemci protokolüyle evrilir)
Parametreler
siteKeystring · yolzorunluKanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.
200 Başarılı
dataLayernesneVeri katmanı köprüsünün ayarları: açık mı, değişken adı, harici dataLayer adı, platform, test modu. Bir hata olursa yalnızca enabled: false gelir.
Alt alanlar (6)
enabledbooleanvariableNamestringexternalDataLayerNamestringplatformstringuseExternalDataLayerbooleantestModebooleanÖrnek yanıt
{
"dataLayer": {
"enabled": true,
"variableName": "selwiseLayer",
"externalDataLayerName": "dataLayer",
"platform": "generic",
"useExternalDataLayer": true,
"testMode": true
}
}Hatalar: 400 geçersiz istek, 402 modül sözleşmede yok, 403 kanal doğrulanmamış ya da köken/anahtar yetkisiz, 404 kanal anahtarı bilinmiyor, 429 hız sınırı. Gövde biçimi için Hatalar ve Limitler.
Widget'ın veri katmanı köprüsü için okuduğu ayarlardır. Bir hata olursa istek 200 ile yalnızca enabled: false döner, hata vermez.
campaigns ve widgets
/api/v1/public/sites/{siteKey}/campaignsKimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key
Parametreler
siteKeystring · yolzorunluKanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.
langany · sorguZiyaretçinin ya da sayfanın dili (tr, en-GB…). Hesabın dillerinden en yakını seçilir; yoksa varsayılan dil. Tek dilli hesapta etkisi yoktur.
200 Başarılı
campaignsnesne listesiYayın penceresi şu an açık olan kampanyalar (Europe/Istanbul saatiyle). /config içindeki listeyle aynıdır.
Alt alanlar (15)
idstring · uuidtypestringThe campaign type (see /docs/widgets).
isTestModebooleanOnly shown to visitors in test mode (?selwise_test_mode=1).
contentJsonobjectThe type's content, in the visitor's language (?lang=).
stylesJsonobjectplacementConfigJsonobjectcustomCssstringcustomJsstringvariantIdstringvariantVersionstringvariantCustomizedbooleanvariantSnapshotJsonobjectnull olabilir
pageTargetingJsonnesnesegmentTargetingModestringall, include or exclude the listed segments.
segmentIdsstring listesiÖrnek yanıt
{
"campaigns": [
{
"id": "3f6c2b9e-6a41-4d6e-9d0a-2e6d4a0c5b11",
"type": "announcement_bar",
"isTestMode": true,
"contentJson": {
"text": "Bugün kargo bedava"
},
"stylesJson": {},
"placementConfigJson": {},
"customCss": "string",
"customJs": "string",
"variantId": "legacy-custom",
"variantVersion": "1.0.0",
"variantCustomized": true,
"variantSnapshotJson": {},
"pageTargetingJson": {
"showOnAllPages": true,
"includeUrls": [
"/urun/*"
],
"excludeUrls": [
"string"
]
},
"segmentTargetingMode": "all",
"segmentIds": [
"string"
]
}
]
}Hatalar: 400 geçersiz istek, 402 modül sözleşmede yok, 403 kanal doğrulanmamış ya da köken/anahtar yetkisiz, 404 kanal anahtarı bilinmiyor, 429 hız sınırı. Gövde biçimi için Hatalar ve Limitler.
curl -X GET 'https://api.selwise.com/api/v1/public/sites/{siteKey}/campaigns' \
-H "x-selwise-api-key: $SELWISE_API_KEY"/api/v1/public/sites/{siteKey}/widgetsKullanımdan kalktıKimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key · Widget ve SDK trafiği (istemci protokolüyle evrilir)
Parametreler
siteKeystring · yolzorunluKanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.
200 Başarılı
widgetsany listesiHer zaman boş: widget'lar Eylül 2026'da kampanyalara birleşti. Eski bir client.js çağırdığı için uç duruyor.
en çok 0 öğe
Örnek yanıt
{
"widgets": []
}Hatalar: 400 geçersiz istek, 402 modül sözleşmede yok, 403 kanal doğrulanmamış ya da köken/anahtar yetkisiz, 404 kanal anahtarı bilinmiyor, 429 hız sınırı. Gövde biçimi için Hatalar ve Limitler.
campaigns yanıtı { "campaigns": [ ... ] } biçimindedir ve config içindeki campaigns ile aynı öğeleri taşır; pencere ve önbellek kuralları da aynıdır (en fazla 5 dakika). widgets her zaman { "widgets": [] } döner. Açılışta bunları ayrı ayrı çağırmak config'i bir kez çağırmaya göre fazladan istek demektir.
type bilinmeyen bir kayıt yanıttan süzülür; stylesJson ve placementConfigJson tipe göre sunucuda temizlenir.
scripts
/api/v1/public/sites/{siteKey}/scriptsKimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key
Parametreler
siteKeystring · yolzorunluKanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.
pathstring · sorguSayfanın yolu; betiklerin yol kuralı buna göre değerlendirilir. Verilmezse /.
200 Başarılı
scriptsnesne listesiYol kuralı path ile eşleşen etkin betikler: kod ve isteğe bağlı CSS.
Alt alanlar (5)
idstring · uuidnamestringslugstringcodestringJavaScript to run on the page.
cssstringnull olabilir
Örnek yanıt
{
"scripts": [
{
"id": "3f6c2b9e-6a41-4d6e-9d0a-2e6d4a0c5b11",
"name": "Rozet",
"slug": "string",
"code": "string",
"css": "string"
}
]
}Hatalar: 400 geçersiz istek, 402 modül sözleşmede yok, 403 kanal doğrulanmamış ya da köken/anahtar yetkisiz, 404 kanal anahtarı bilinmiyor, 429 hız sınırı. Gövde biçimi için Hatalar ve Limitler.
curl -X GET 'https://api.selwise.com/api/v1/public/sites/{siteKey}/scripts' \
-H "x-selwise-api-key: $SELWISE_API_KEY"Yol bazında filtrelenir. Parametresiz çağrı yalnızca ana sayfaya tanımlı script'leri döner, sitenin tamamını değil. Script'ler özel kod modülünün içeriğidir: bkz. Özel Script'ler.
Ürün sayıları: product-metrics
product_view_count ve cart_count widget'larının okuduğu sayılardır. Bu widget'ları kullanmıyorsanız kendi rozetinizi yazarken doğrudan çağırabilirsiniz.
/api/v1/public/sites/{siteKey}/product-metrics/view-countKimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key
Parametreler
siteKeystring · yolzorunluKanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.
productstring · sorguzorunluÜrünün beslemedeki item_code değeri, en çok 200 karakter.
langstring · sorguZiyaretçinin ya da sayfanın dili (tr, en-GB…). Hesabın dillerinden en yakını seçilir; yoksa varsayılan dil. Tek dilli hesapta etkisi yoktur.
periodstring · sorguGörüntülenme penceresi: 1h, 24h, 7d veya 30d. Verilmezse 24h.
1h | 24h | 7d | 30d
200 Başarılı
countnumberTekil ziyaretçi sayısı (aynı kişinin on bakışı bir sayılır).
formattedstringGösterim için kısaltılmış hali (1,2B gibi).
Örnek yanıt
{
"count": 128,
"formatted": "128"
}Hatalar: 400 geçersiz istek, 402 modül sözleşmede yok, 403 kanal doğrulanmamış ya da köken/anahtar yetkisiz, 404 kanal anahtarı bilinmiyor, 429 hız sınırı. Gövde biçimi için Hatalar ve Limitler.
curl -X GET 'https://api.selwise.com/api/v1/public/sites/{siteKey}/product-metrics/view-count' \
-H "x-selwise-api-key: $SELWISE_API_KEY"/api/v1/public/sites/{siteKey}/product-metrics/cart-countKimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key
Parametreler
siteKeystring · yolzorunluKanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.
productstring · sorguzorunluÜrünün beslemedeki item_code değeri, en çok 200 karakter.
langstring · sorguZiyaretçinin ya da sayfanın dili (tr, en-GB…). Hesabın dillerinden en yakını seçilir; yoksa varsayılan dil. Tek dilli hesapta etkisi yoktur.
metricstring · sorguSepet ölçüsü. Şu an yalnızca active_carts (ürünü sepetinde tutan etkin sepet sayısı).
active_carts
200 Başarılı
countnumberTekil ziyaretçi sayısı (aynı kişinin on bakışı bir sayılır).
formattedstringGösterim için kısaltılmış hali (1,2B gibi).
Örnek yanıt
{
"count": 128,
"formatted": "128"
}Hatalar: 400 geçersiz istek, 402 modül sözleşmede yok, 403 kanal doğrulanmamış ya da köken/anahtar yetkisiz, 404 kanal anahtarı bilinmiyor, 429 hız sınırı. Gövde biçimi için Hatalar ve Limitler.
curl -X GET 'https://api.selwise.com/api/v1/public/sites/{siteKey}/product-metrics/cart-count' \
-H "x-selwise-api-key: $SELWISE_API_KEY"Sayılan şey tekil ziyaretçidir, gösterim değil: aynı kişinin bir ürüne on kez bakması sayıyı bir artırır. cart-count son 24 saatte ürünü sepete ekleyen tekil ziyaretçileri sayar; sonradan sepetten çıkaranları düşmez, yani "şu an sepette olanlar" değil "son 24 saatte sepete atanlar" demektir.
Tek sayfada birden çok widget için batch hepsini tek istekte döndürür (en çok 50 ürün):
/api/v1/public/sites/{siteKey}/product-metrics/batchKimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key
Parametreler
siteKeystring · yolzorunluKanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.
Gövde (application/json)
productsnesne listesizorunluSorulacak sayılar, en çok 50; her biri kendi widgetId anahtarıyla döner.
en çok 50 öğe
Alt alanlar (3)
itemCodestringzorunluÜrünün beslemedeki item_code değeri.
widgetIdstringzorunluBu girdi için sizin anahtarınız. Yanıt bu anahtarla döner; aynı ürün için iki sayı (görüntülenme ve sepet) böylece ayrışır.
confignesnezorunluBu girdinin hangi sayıyı istediği.
Alt alanlar (3)
typestringzorunluproduct_view_count (görüntülenme) veya cart_count (sepet).
product_view_count | cart_count
timePeriodstringGörüntülenme penceresi: 1h, 24h, 7d, 30d. Verilmezse 24h.
1h | 24h | 7d | 30d
metricTypestringSepet ölçüsü; şu an yalnızca active_carts.
active_carts
Örnek gövde
{
"products": [
{
"itemCode": "SKU-12345",
"widgetId": "widget-uuid-123",
"config": {
"type": "product_view_count",
"timePeriod": "24h"
}
}
]
}201 Başarılı
Keyed by the widgetId each entry was asked under; {} when nothing was asked.
Örnek yanıt
{}Hatalar: 400 geçersiz istek, 402 modül sözleşmede yok, 403 kanal doğrulanmamış ya da köken/anahtar yetkisiz, 404 kanal anahtarı bilinmiyor, 429 hız sınırı. Gövde biçimi için Hatalar ve Limitler.
curl -X POST 'https://api.selwise.com/api/v1/public/sites/{siteKey}/product-metrics/batch' \
-H 'Content-Type: application/json' \
-H "x-selwise-api-key: $SELWISE_API_KEY" \
-d '{"products":[{"itemCode":"SKU-12345","widgetId":"widget-uuid-123","config":{"type":"product_view_count","timePeriod":"24h"}}]}'{
"products": [
{ "itemCode": "SKU-12345", "widgetId": "w-1", "config": { "type": "product_view_count", "timePeriod": "24h" } },
{ "itemCode": "SKU-12345", "widgetId": "w-2", "config": { "type": "cart_count", "metricType": "active_carts" } }
]
}
Yanıt, her girişin widgetId değerine göre anahtarlanmış bir nesnedir; widgetId'yi siz verirsiniz ve aynı ürün için iki ölçüt isteyen iki giriş iki ayrı cevap alır:
{
"w-1": { "itemCode": "SKU-12345", "type": "product_view_count", "count": 128, "formatted": "128" },
"w-2": { "itemCode": "SKU-12345", "type": "cart_count", "count": 12, "formatted": "12" }
}
config.type zorunludur (product_view_count veya cart_count); timePeriod yalnızca görüntülenme için, metricType yalnızca sepet için okunur. Bilinmeyen bir değer 400 döner.
Sonuçlar sunucuda önbelleğe alınır (görüntüleme 2 dakika, sepet 3 dakika, toplu 2 dakika); yani gerçek zamanlı değil, "az gecikmeli" sayılardır.
Son güncelleme: 22 Ekim 2026
