Lewati ke konten

Produk & Fitur

Tentukan apa yang kamu jual. Buat produk dengan satu atau lebih varian, lampirkan fitur yang dapat digunakan kembali untuk kontrol akses berbasis entitlement.

Proyecta Commerce menggunakan tiga konsep: produk, varian, dan fitur.

  • Produk — hal yang kamu jual (misalnya “Pro Plan”, “Kaos”, “Strategy Call”)
  • Varian — tingkatan harga atau konfigurasi dari sebuah produk (misalnya “Pro Bulanan $29”, “Pro Tahunan $290”, “Kaos – Large”)
  • Fitur — kunci entitlement yang dapat digunakan kembali, yang diperiksa oleh aplikasimu saat runtime (misalnya pro_features, unlimited_projects, api_access)

Sebuah produk bisa memiliki beberapa varian. Produk juga memiliki satu atau lebih resource yang dilampirkan — biasanya berupa fitur — yang memberikan akses ketika pelanggan berlangganan.

Di Dashboard > Commerce > Products, klik Create product (atau tanyakan ke AI: "Create a Pro plan at $29/month and a Business plan at $99/month."). Setiap produk memerlukan:

  • Sebuah nama tampilan (misalnya “Pro”)
  • Setidaknya satu varian

Setiap varian memiliki harganya sendiri:

KolomKeterangan
nameLabel tampilan untuk varian (“Monthly”, “Annual”, “Large”)
currencyKode ISO tiga huruf — USD, EUR, GBP, JPY, BRL, MXN, INR… (SDK mendukung 130+)
unit_amountHarga dalam satuan mata uang terkecil (sen). 2900 = $29.00
recurringOpsional — { interval: 'week' | 'month' | 'year' }. Hilangkan untuk harga satu kali. Penagihan harian belum didukung saat ini.
is_defaultDiterima tetapi belum diterapkan — pemilihan varian default belum diimplementasikan saat ini.
mediaLampirkan gambar atau video berdasarkan file ID CDN (lihat Files)

Harga bersifat permanen. Setelah varian dibuat, harganya tidak dapat diubah — buat varian baru sebagai gantinya. Ini melindungi pelanggan yang sudah ada dari perubahan harga yang tidak disengaja.

Fitur adalah elemen dasar kontrol akses. Buat fitur sekali, lalu lampirkan ke satu atau lebih produk.

// Create a feature
const pro = await proyecta.commerce.features.create({
name: 'Pro features',
description: 'Unlocks the Pro tier capabilities',
// optional custom id — lowercase alphanumeric and underscores only (e.g. 'pro_features')
});

Saat kamu membuat produk, kamu melampirkan fitur ke dalamnya melalui “resources”. Pelanggan yang berlangganan sebuah produk mendapatkan akses ke setiap fitur yang dilampirkan padanya.

Kemudian, di dalam aplikasimu, periksa apakah pelanggan memiliki akses:

const { has_access } = await proyecta.commerce.check({
customer_id: 'cus_123',
resource_id: 'pro_features',
});

Catatan: resource_id harus berupa key fitur — slug yang diturunkan dari nama fitur (misalnya, pro_features), bukan properti .id dari objek fitur yang dikembalikan oleh features.create().

Inilah cara kamu membatasi akses ke halaman khusus Pro, endpoint API, atau fitur tertentu di kode aplikasimu.

Langganan SaaS

Create products: Free ($0/month), Pro ($29/month, $290/year), Business ($99/month, $990/year).
Attach a 'pro_features' feature to Pro and Business so I can gate access in my code.

Barang fisik

Create a T-shirt product with three variants: Small, Medium, Large at $25 each.

Barang digital

Create a course product with a single one-time variant at $149.

Donasi

Create a donation product with three variants: $25, $50, $100 — all one-time.

Proyecta Commerce saat ini tidak melacak inventaris untuk produk fisik. Jika kamu menjual barang stok, kelola jumlah stok di database aplikasimu dan periksa dalam alur checkout-mu.

  • Kustomisasi kolom checkout — kumpulkan informasi tambahan dari pembeli
  • Penetapan harga sesuai keinginan pembeli
  • Pelacakan inventaris bawaan untuk produk fisik