docs: record App Store Connect and RevenueCat setup
This commit is contained in:
@@ -2,6 +2,28 @@
|
|||||||
|
|
||||||
Faz tanımları için [ROADMAP.md](./ROADMAP.md). Bu dosya ne yapıldığını, ne yapılmadığını ve bilinen sınırlamaları takip eder — faz atlarken buraya bakıp neyin gerçek neyin stub olduğunu hatırlamak için.
|
Faz tanımları için [ROADMAP.md](./ROADMAP.md). Bu dosya ne yapıldığını, ne yapılmadığını ve bilinen sınırlamaları takip eder — faz atlarken buraya bakıp neyin gerçek neyin stub olduğunu hatırlamak için.
|
||||||
|
|
||||||
|
## App Store Connect + RevenueCat kurulumu (2026-08-20)
|
||||||
|
|
||||||
|
**App Store Connect** (API ile, gerçek üretim hesabına karşı):
|
||||||
|
- Store metinleri yazıldı: alt başlık, açıklama, anahtar kelimeler, tanıtım metni, destek/pazarlama/gizlilik URL'leri, telif hakkı
|
||||||
|
- Kategori: Food & Drink
|
||||||
|
- En son build (v10) versiyona bağlandı
|
||||||
|
- Subscription group "Menulio Pro" + iki ürün oluşturuldu: `menu_pro_monthly`, `menu_pro_yearly` (Türkçe isim/açıklama ile)
|
||||||
|
- Fiyatlandırma kullanıcı tarafından App Store Connect UI'dan girildi: aylık 250 TL, yıllık 2500 TL
|
||||||
|
- **Kullanıcının tamamlaması gereken:** Yaş derecelendirmesi anketi, en az 1 ekran görüntüsü — API'nin güvenilir şekilde dolduramadığı/dolduramayacağı alanlar
|
||||||
|
|
||||||
|
**RevenueCat** (proje zaten `proj0d3bc1c1` olarak mevcuttu, API ile tamamlandı):
|
||||||
|
- Gerçek App Store ürünleri (`menu_pro_monthly`, `menu_pro_yearly`) "Menul.io (App Store)" app'ine eklendi
|
||||||
|
- "Menulio Pro" entitlement'ına bağlandı
|
||||||
|
- "default" offering'in Monthly/Yearly paketlerine iliştirildi
|
||||||
|
|
||||||
|
**Backend:** `POST /subscription/webhook` gerçek mantıkla yazıldı — Authorization header'ı (shared secret) doğruluyor, RevenueCat event tipini `subscriptions.status`'a çeviriyor (`INITIAL_PURCHASE`/`RENEWAL`/`PRODUCT_CHANGE`/`UNCANCELLATION` → active, `BILLING_ISSUE` → grace_period, `EXPIRATION` → suspended; `CANCELLATION` tek başına suspend etmiyor, sadece auto-renew kapanıyor). Gerçek Supabase'e karşı uçtan uca test edildi.
|
||||||
|
|
||||||
|
**Kalan (henüz yapılmadı):**
|
||||||
|
- Mobile'da `react-native-purchases` SDK'sı hiç kurulu değil — paywall ekranı, `Purchases.configure({ appUserID: restaurantId })` çağrısı, satın alma akışı yazılmadı. Webhook'un `app_user_id`'yi restoran ID'si olarak eşleştirebilmesi için bu SDK entegrasyonu **zorunlu**.
|
||||||
|
- RevenueCat Dashboard'da webhook URL'i (`https://api.menul.io/subscription/webhook`) ve Authorization header değeri (`Bearer test_MoTphXMYyNDmzeBCbvYVhfrcCjl`) henüz elle girilmedi.
|
||||||
|
- API servisine `REVENUECAT_WEBHOOK_SECRET` env değişkeni henüz prod'a eklenmedi (local `.env`'de var, Coolify'a taşınmadı).
|
||||||
|
|
||||||
## Faz 0 — Altyapı ✅ (2026-08-19)
|
## Faz 0 — Altyapı ✅ (2026-08-19)
|
||||||
|
|
||||||
- pnpm monorepo: `apps/api` (Fastify), `apps/web` (Next.js), `apps/mobile` (Expo Router), `packages/shared`
|
- pnpm monorepo: `apps/api` (Fastify), `apps/web` (Next.js), `apps/mobile` (Expo Router), `packages/shared`
|
||||||
|
|||||||
Reference in New Issue
Block a user