Mobil client mantığı

Mobil uygulamalar için ayrı client oluşturun. Web vitrin token’ı ile mobil token’ı karıştırmayın. Önerilen scope’lar:
mobile:catalog
mobile:cart
mobile:checkout
mobile:customer
Gerekirse web scope’larıyla birlikte de çalışabilir:
catalog:read
cart:write
checkout:write
customer:auth

Base yapı

Mobil uygulama ilk açıldığında:
  1. Tenant domain veya mağaza kodu çözülür.
  2. Katalog ve tema ayarları yüklenir.
  3. Cart token secure storage içinde saklanır.
  4. Müşteri giriş yaptıysa customer session token kullanılır.

React Native örneği

const response = await fetch("https://api.hemenmagaza.com/v1/products?limit=20", {
  headers: {
    Authorization: `Bearer ${process.env.HEMEN_API_TOKEN}`,
    Accept: "application/json",
  },
});

const products = await response.json();

Flutter önerisi

Flutter tarafında token’ları flutter_secure_storage gibi güvenli storage ile saklayın. Public config içine yüksek yetkili token koymayın.

Push notification entegrasyonu

Mobil uygulamalar sipariş durumu için webhook + push servis köprüsü kullanabilir:
  1. Hemen Mağaza webhook order.paid eventini entegrasyon sunucunuza gönderir.
  2. Entegrasyon sunucusu FCM/APNs bildirimi üretir.
  3. Müşteri uygulamasında sipariş durumu güncellenir.

Offline davranış

Ürün listesi kısa süre cache’lenebilir. Fiyat, stok ve checkout adımları canlı API’den okunmalıdır.