Panduan ini dipakai saat database di-reset (Neon baru / wipe) atau ganti akun Scalev — supaya batch di admin tidak masih mengarah ke store/variant lama.
Kapan perlu resync?
| Situasi | Gejala | Solusi |
|---|
Ganti SCALEV_API_KEY / toko | ensure-scalev error Not Found | Resync semua batch |
| Restore DB backup lama | Tier punya store_TJH... (toko lama) | Reset store + resync |
| Neon fresh + batch baru | Belum ada produk di Scalev | Resync setelah batch dibuat |
Tier menyimpan scalevStoreUniqueId per baris — mengalahkan SCALEV_STORE_UNIQUE_ID di env. DB lama + key baru = mismatch.
Env Scalev (shared .env)
PAYMENT_PROVIDER=scalev
SCALEV_API_KEY=sk_...
SCALEV_STORE_UNIQUE_ID=store_... # dari GET /v3/stores/simplified
SCALEV_BUSINESS_ID=TUQ34D2CUIL8ILFX # opsional, referensi dashboard
SCALEV_BASE_URL=https://api.scalev.com
SCALEV_WEBHOOK_SECRET=... # webhook production
Cek key + store:
curl -s -H "Authorization: Bearer $SCALEV_API_KEY" \
"https://api.scalev.com/v3/stores/simplified" | jq '.data[] | {name, unique_id}'
Alur: Neon DB baru (production)
neon-fresh-setup.sh menghapus semua data di DATABASE_URL yang aktif di apps/api/.env.
1. Isi .env Scalev
Pastikan API key dan SCALEV_STORE_UNIQUE_ID sudah benar di .env shared.
2. Wipe + migrate + seed
./thub env merge --prod
./scripts/fresh-neon-and-scalev.sh
Atau hanya DB: ./scripts/neon-fresh-setup.sh3. Push secrets ke Cloudflare
./thub secrets generate
./thub secrets push
4. Deploy (jika perlu)
Atau workflow Deploy Cloudflare di GitHub Actions. 5. Buat batch & tier di admin
Seed hanya demo batch — batch production buat lewat /admin/batches + tier.
Lihat Admin playbook. 6. Resync Scalev otomatis
PW_BASE_URL=https://app.sertifikasitrainer.com ./scripts/pw-login.sh admin
./thub scalev resync
Atau: ./scripts/resync-all-scalev.shScript ini per batch:
- Clear
scalevProductId batch
- Set tier →
SCALEV_STORE_UNIQUE_ID dari .env, clear variant lama
POST resync-scalev → buat produk + variant di Scalev
7. Verifikasi
- Admin: Scalev health → “Siap checkout”
- Test:
POST /api/public/register → dapat providerOrderCode + URL bayar
Diagram
Resync manual (satu batch)
Di admin → detail batch → panel Scalev:
- Ensure Scalev
- Resync per tier
Kalau masih gagal, pastikan tier tidak masih pakai Store ID lama — edit tier atau jalankan ./thub scalev resync.
Dev lokal
Dev pakai PAYMENT_PROVIDER=manual di .env.development.local — resync Scalev tidak wajib untuk laptop.
Untuk tes Scalev lokal: override sementara PAYMENT_PROVIDER=scalev di merge dev + jalankan resync ke API lokal (jarang dipakai).
Halaman terkait