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 hak.

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

  • Produk — sesuatu yang kamu jual (misalnya “Pro Plan”, “Kaos”, “Strategy Call”)
  • Varian — tingkatan harga atau konfigurasi dari sebuah produk (misalnya “Pro Monthly $29”, “Pro Annual $290”, “Kaos – Ukuran L”)
  • Fitur — kunci hak akses yang dapat digunakan kembali dan dicek oleh aplikasimu saat runtime (misalnya pro_features, unlimited_projects, api_access)

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

Dua cara untuk memodelkan apa yang kamu jual

Section titled “Dua cara untuk memodelkan apa yang kamu jual”

Commerce bekerja bersama bagian lain platform, sehingga ada dua bentuk untuk “sesuatu yang kamu jual” — dan Proyecta memilihkan yang tepat untukmu:

  • Produk native Commerce — langganan, paket, peningkatan satu kali, dan fitur/hak akses. Didefinisikan langsung di Admin > Commerce > Products. Inilah model yang dijelaskan pada halaman ini.
  • Katalog storefront berbasis konten — barang dengan foto, harga, dan deskripsi yang diedit oleh pemilik bisnis setiap hari. Item ini disimpan di CMS sebagai koleksi yang dapat dijual: setiap entri adalah produknya. Ketika sebuah entri dipublikasikan, Proyecta secara otomatis mengintegrasikannya ke Commerce sebagai produk nyata yang dapat dibeli — membuat produk beserta varian berharganya, dan menyalin harga langsung dari field konten. Storefront menampilkan harga dari konten dan checkout menagih melalui varian yang tertaut, dan karena keduanya berbagi satu sumber, nilainya tidak akan pernah berbeda. Kamu mengelola item ini sebagai konten (di Admin aplikasimu, di builder atau di situs yang sudah dipublikasikan), bukan di bawah Commerce > Products. Lihat Manajemen Konten.

Katalog biasa yang tidak menerima pembayaran kartu — menu hanya untuk dilihat, atau toko yang tombol “beli”-nya membuka tautan order WhatsApp — hanyalah konten biasa — koleksi katalog biasa, tanpa integrasi Commerce. Checkout dengan kartu adalah yang membuat sebuah koleksi menjadi dapat dijual.

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

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

Setiap varian memiliki harganya sendiri:

Field Keterangan
name Label tampilan untuk varian (“Monthly”, “Annual”, “Large”)
currency Kode ISO tiga huruf — USD, EUR, GBP, JPY, BRL, MXN, INR… (130+ didukung)
unit_amount Harga dalam unit mata uang terkecil (sen). 2900 = $29.00
recurring Opsional — { interval: 'week' | 'month' | 'year' }. Abaikan untuk harga satu kali. Penagihan harian belum didukung saat ini.
is_default Diterima tetapi belum diterapkan — pemilihan varian default belum diimplementasikan saat ini.
media Lampirkan gambar atau video berdasarkan ID file 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 komponen dasar kontrol akses. Buat fitur sekali di Admin > Commerce > Products, lalu lampirkan ke satu atau lebih produk. Setiap fitur memiliki nama, deskripsi opsional, dan sebuah key — huruf kecil, angka, dan garis bawah (misalnya pro_features) — yang menjadi referensi pengecekan di aplikasimu.

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

Kemudian, di aplikasimu, lakukan pembatasan akses berdasarkan key tersebut:

const { hasAccess, isLoading } = useEntitlement('pro_features');
if (isLoading) return <Spinner />;
if (!hasAccess) return <UpgradePrompt />;
return <ProOnlyThing />;

Pengecekan dijalankan di sisi server terhadap sesi yang sudah login, sehingga tidak dapat dipalsukan dari browser. Lihat Integrasikan Commerce ke Aplikasimu untuk pola selengkapnya.

Catatan: Selalu lakukan pembatasan akses berdasarkan key fitur — slug yang berasal dari nama fitur (misalnya, pro_features) — bukan ID internal fitur.

Inilah cara kamu membatasi akses ke halaman khusus Pro, endpoint API, atau fitur dalam 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 periksalah dalam alur checkout-mu.

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