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
| Alan | Tip | Kural |
|---|---|---|
amount | string | Ondalık ayraç her zaman nokta. Sunucuda yuvarlanmış gelir. String olarak taşı; aritmetik gerekiyorsa decimal işle. |
currencyCode | string | ISO 4217 kodu (TRY, USD, EUR, ...). Ürün bazlıdır — site default'u değil. Yokmuş gibi varsayım yapma. |
decimalPlaces | number | Mağ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:
- Token'da
storefront:pricingscope'u var. - Ü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.