Producten & Functies
Definieer wat je verkoopt. Maak producten aan met één of meerdere varianten en koppel herbruikbare functies voor op rechten gebaseerde toegangscontrole.
Proyecta Commerce maakt gebruik van drie concepten: producten, varianten en functies.
- Product — datgene wat je verkoopt (bijv. “Pro Plan”, “T-shirt”, “Strategiegesprek”)
- Variant — een prijsniveau of configuratie van een product (bijv. “Pro Maandelijks $29”, “Pro Jaarlijks $290”, “T-shirt – Large”)
- Functie — een herbruikbare rechtenschleutel die je app tijdens runtime controleert (bijv.
pro_features,unlimited_projects,api_access)
Een product kan meerdere varianten hebben. Een product heeft ook één of meer resources gekoppeld — doorgaans functies — die toegang verlenen wanneer een klant een abonnement neemt.
Een product aanmaken
Section titled “Een product aanmaken”Klik in Dashboard > Commerce > Products op Create product (of vraag het de AI: "Create a Pro plan at $29/month and a Business plan at $99/month."). Elk product heeft het volgende nodig:
- Een weergavenaam (bijv. “Pro”)
- Ten minste één variant
Varianten
Section titled “Varianten”Elke variant heeft zijn eigen prijsstelling:
| Veld | Opmerkingen |
|---|---|
name | Weergavelabel voor de variant (“Monthly”, “Annual”, “Large”) |
currency | Drieletterige ISO-code — USD, EUR, GBP, JPY, BRL, MXN, INR… (de SDK ondersteunt 130+) |
unit_amount | Prijs in de kleinste valuta-eenheid (centen). 2900 = $29.00 |
recurring | Optioneel — { interval: 'week' | 'month' | 'year' }. Weglaten voor eenmalige prijzen. Dagelijkse facturering wordt momenteel niet ondersteund. |
is_default | Geaccepteerd maar nog niet afgedwongen — selectie van standaardvariant is momenteel niet geïmplementeerd. |
media | Koppel afbeeldingen of video’s via CDN-bestands-ID (zie Bestanden) |
Prijzen zijn onveranderlijk. Zodra een variant is aangemaakt, kan de prijs niet worden gewijzigd — maak in plaats daarvan een nieuwe variant aan. Dit beschermt bestaande abonnees tegen onbedoelde prijswijzigingen.
Functies (rechten)
Section titled “Functies (rechten)”Functies zijn het basisprimitief voor toegangscontrole. Maak een functie eenmalig aan en koppel deze vervolgens aan één of meer producten.
// Create a featureconst 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')});Wanneer je een product aanmaakt, koppel je er functies aan via “resources”. Klanten die een abonnement op een product nemen, krijgen toegang tot elke functie die eraan is gekoppeld.
Controleer vervolgens in je app of een klant toegang heeft:
const { has_access } = await proyecta.commerce.check({ customer_id: 'cus_123', resource_id: 'pro_features',});Let op: De
resource_idmoet de functie sleutel zijn — de slug afgeleid van de functienaam (bijv.pro_features), niet de.id-eigenschap van het functie-object dat doorfeatures.create()wordt geretourneerd.
Zo kun je Pro-exclusieve pagina’s, API-endpoints of functies in je app-code afschermen.
Veelgebruikte productvormen
Section titled “Veelgebruikte productvormen”SaaS-abonnementen
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.Fysieke goederen
Create a T-shirt product with three variants: Small, Medium, Large at $25 each.Digitale goederen
Create a course product with a single one-time variant at $149.Donaties
Create a donation product with three variants: $25, $50, $100 — all one-time.Voorraad
Section titled “Voorraad”Proyecta Commerce houdt momenteel geen voorraad bij voor fysieke producten. Als je producten met beperkte voorraad verkoopt, beheer je de voorraadaantallen in de database van je app en controleer je deze in je checkout-flow.
Binnenkort beschikbaar
Section titled “Binnenkort beschikbaar”- Aanpassing van checkout-velden — verzamel aanvullende informatie van kopers
- Betaal-wat-je-wilt-prijsstelling
- Ingebouwde voorraadregistratie voor fysieke producten