T-SOFT/Storefront API/Fiyat Alarmları

Fiyat Alarmları

alarms kaynağı, oturum açmış müşterinin fiyat düşüşü alarmlarını yönetir. index, show, store ve destroy destekler. Tüm istekler kimliği doğrulanmış müşteri token'ı gerektirir.

Yetki:storefront:account — müşteri token'ı zorunlu.

Listeleme

GET alarms
curl -s 'https://<domain>/api/v3/storefront/account/2026-01/alarms' \
  -H 'Accept: application/vnd.api+json' \
  -H 'Authorization: Bearer <TOKEN>'

Örnek bir alarm kaydı:

{
  "type": "alarms",
  "id": "77",
  "attributes": {
    "productId": 10432,
    "variantId": 0,
    "alarmType": "price",
    "alarmPrice": { "amount": "3999.00", "currencyCode": "TRY", "decimalPlaces": 2 },
    "alarmDay": 90,
    "currentPrice": { "amount": "4999.00", "currencyCode": "TRY", "decimalPlaces": 2 },
    "vatIncluded": true,
    "remainingDay": 21,
    "recordTime": 1720000000,
    "product": {
      "id": 10432,
      "name": "Ahşap Yemek Masası",
      "image": "https://<domain>/Data/Urunler/10432.jpg"
    }
  }
}

Tek alarm

GET alarms/{id}
curl -s 'https://<domain>/api/v3/storefront/account/2026-01/alarms/77' \
  -H 'Accept: application/vnd.api+json' \
  -H 'Authorization: Bearer <TOKEN>'

Yanıt, listedeki kaydın aynısıdır (data tekil obje olarak döner). Başka bir müşterinin alarmı istendiğinde 404 alınır.

Alarm oluşturma

POST alarms
curl -s -X POST 'https://<domain>/api/v3/storefront/account/2026-01/alarms' \
  -H 'Accept: application/vnd.api+json' \
  -H 'Content-Type: application/vnd.api+json' \
  -H 'Authorization: Bearer <TOKEN>' \
  -d '{
    "data": {
      "type": "alarms",
      "attributes": {
        "productId": 10432,
        "variantId": 0,
        "alarmType": "price",
        "alarmPrice": { "amount": "3999.00", "currencyCode": "TRY", "decimalPlaces": 2 }
      }
    }
  }'

Alarm silme

DELETE alarms/:id
curl -s -X DELETE 'https://<domain>/api/v3/storefront/account/2026-01/alarms/77' \
  -H 'Accept: application/vnd.api+json' \
  -H 'Authorization: Bearer <TOKEN>'

Filtreler

Belirli bir ürüne ait alarmları sorgulamak için productId filtresini kullan:

FiltreÖrnekDavranış
filter[productId]filter[productId]=10432Belirli bir ürüne ait alarmları getirir

Alanlar

productId, variantId, alarmType ve alarmPrice yazılabilir; hesaplanan alanlar salt-okunurdur.

AlanAçıklama
productIdÜrün id'si (yazılır)
variantIdVaryant id'si; varyantsız ürünlerde 0 (yazılır)
alarmTypeAlarm türü (yazılır)
alarmPriceHedef fiyat — Money nesnesi (yazılır)
alarmDayAlarmın toplam geçerlilik süresi (gün) — bkz. alarmDay semantiği
currentPriceÜrünün güncel fiyatı — Money nesnesi, salt-okunur
vatIncludedFiyata KDV dahil mi? — salt-okunur
remainingDayAlarmın dolmasına kalan gün — salt-okunur
recordTimeAlarmın oluşturulma zamanı (unix) — salt-okunur
productÜrünün özet nesnesi — salt-okunur gömülü obje
alarmPrice ve currentPrice birer Money nesnesidir (bkz. Money): { "amount": "...", "currencyCode": "TRY", "decimalPlaces": 2 }. Kıyaslama yaparken metin amount değeri yerine decimalPlaces ile ölçeklenmiş sayısal değerleri kullan.

alarmDay semantiği

alarmDay alarmın toplam geçerlilik süresidir (gün cinsinden) ve her alarmda koşulsuz döner. remainingDay ise o toplam süreden geriye kalan gündür; alarm oluşturulduğu anda alarmDay ile remainingDay eşittir, zaman geçtikçe remainingDay azalırken alarmDay sabit kalır. Fiyat alarmında bu süre 90, stok alarmında 30 gündür (aynı ürün+varyant+tür için tekrar oluşturma bu süreyi ve recordTime'ı sıfırdan başlatır). İlerleme çubuğu gibi bir gösterim remainingDay / alarmDay oranıyla çizilebilir.