T-SOFT/Storefront API/Para Birimi

Para Birimi

Fiyat taşıyan tüm alanlar (price, discountPrice, ...) sayı olarak değil, ortak Money nesnesiyle döner. Böylece para birimi ve ondalık basamak bilgisi her fiyatla birlikte gelir; ayrı bir sorguyla öğrenmen gerekmez.

{
  "amount": "166.67",
  "currencyCode": "TRY",
  "decimalPlaces": 2
}

Alanlar

AlanTipKural
amountstringOndalık ayraç her zaman nokta. Sunucuda yuvarlanmış gelir. String olarak taşı; aritmetik gerekiyorsa decimal işle.
currencyCodestringISO 4217 kodu (TRY, USD, EUR, ...). Ürün bazlıdır — site default'u değil. Yokmuş gibi varsayım yapma.
decimalPlacesnumberMağazanın basamak ayarı. Yalnızca gösterimde kullan.
Virgüllü gösterim ("1.234,56 ₺") tamamen istemci tarafında yapılan locale formatlamasıdır. API'den hiçbir zaman virgül gelmez — gelirse bug.

Aritmetik

amount string olarak taşınır çünkü kayan noktalı sayı (float) para hesaplarında hata üretir — klasik 0.1 + 0.2 !== 0.3 durumu. Sadece gösterim yaparken sayıya çevirebilirsin; sepet toplamı, kampanya indirimi, KDV gibi aritmetik gerektiren yerlerde dilinin decimal / big-number araçlarını kullan.

discountPrice yokluğu

discountPrice alanı yalnızca iki koşul birlikte sağlandığında yanıtta yer alır:

  1. Token'da storefront:pricing scope'u var.
  2. Üründe aktif bir indirim var.

Aksi halde alan yanıtta hiç bulunmaz — null gelmez. Kontrolünü "alan var mı?" olarak kur; "null değil mi?" yeterli değil.