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.

get/api/v1/public/sites/{siteKey}/config

Kimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key

Parametreler

siteKeystring · yolzorunlu

Kanal 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 · sorgu

Ziyaretç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.

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
2Sepet 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

get/api/v1/public/sites/{siteKey}/tracking-config

Kimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key

Parametreler

siteKeystring · yolzorunlu

Kanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.

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

get/api/v1/public/sites/{siteKey}/integrations

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 · yolzorunlu

Kanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.

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

get/api/v1/public/sites/{siteKey}/campaigns

Kimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key

Parametreler

siteKeystring · yolzorunlu

Kanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.

langany · sorgu

Ziyaretç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.

get/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 · yolzorunlu

Kanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.

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

get/api/v1/public/sites/{siteKey}/scripts

Kimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key

Parametreler

siteKeystring · yolzorunlu

Kanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.

pathstring · sorgu

Sayfanın yolu; betiklerin yol kuralı buna göre değerlendirilir. Verilmezse /.

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.

get/api/v1/public/sites/{siteKey}/product-metrics/view-count

Kimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key

Parametreler

siteKeystring · yolzorunlu

Kanal 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 · sorgu

Ziyaretç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 · sorgu

Görüntülenme penceresi: 1h, 24h, 7d veya 30d. Verilmezse 24h.

1h | 24h | 7d | 30d

get/api/v1/public/sites/{siteKey}/product-metrics/cart-count

Kimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key

Parametreler

siteKeystring · yolzorunlu

Kanal 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 · sorgu

Ziyaretç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 · sorgu

Sepet ölçüsü. Şu an yalnızca active_carts (ürünü sepetinde tutan etkin sepet sayısı).

active_carts

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):

post/api/v1/public/sites/{siteKey}/product-metrics/batch

Kimlik: Tarayıcıdan doğrulanmış alan adı (Origin), sunucudan ya da uygulamadan x-selwise-api-key

Parametreler

siteKeystring · yolzorunlu

Kanal anahtarı (Kanallar → Kanal Özeti → Kanal Anahtarı). Kanalı adlandırır; sır değildir.

Gövde (application/json)

productsnesne listesizorunlu

Sorulacak 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.

widgetIdstringzorunlu

Bu 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.

confignesnezorunlu

Bu girdinin hangi sayıyı istediği.

Alt alanlar (3)
typestringzorunlu

product_view_count (görüntülenme) veya cart_count (sepet).

product_view_count | cart_count

timePeriodstring

Görüntülenme penceresi: 1h, 24h, 7d, 30d. Verilmezse 24h.

1h | 24h | 7d | 30d

metricTypestring

Sepet ö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"
      }
    }
  ]
}
{
  "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