Producten & Functies
Definieer wat je verkoopt. Maak producten met één of meer varianten, voeg herbruikbare functies toe voor op rechten gebaseerde toegangscontrole.
Proyecta Commerce werkt met drie concepten: producten, varianten en functies.
- Product — wat je verkoopt (bijv. “Pro Plan”, “T-shirt”, “Strategy Call”)
- 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 de uitvoering controleert (bijv.
pro_features,unlimited_projects,api_access)
Een product kan meerdere varianten hebben. Een product heeft ook één of meer resources gekoppeld — meestal functies — die toegang verlenen wanneer een klant een abonnement neemt.
Twee manieren om te modelleren wat je verkoopt
Section titled “Twee manieren om te modelleren wat je verkoopt”Commerce werkt samen met de rest van het platform, waardoor er twee vormen zijn voor “iets wat je verkoopt” — en Proyecta kiest de juiste voor jou:
- Commerce-native producten — abonnementen, plannen, eenmalige upgrades en functies/rechten. Rechtstreeks gedefinieerd in Admin > Commerce > Products. Dit is het model dat de rest van deze pagina beschrijft.
- Een contentgedreven storefrontcatalogus — goederen met foto’s, prijzen en beschrijvingen die een bedrijfseigenaar dagelijks beheert. Deze leven in het CMS als een verkoopbare collectie: elke invoer is het product. Wanneer een invoer wordt gepubliceerd, weeft Proyecta deze automatisch in Commerce als een echt, koopbaar product — het maakt het product en zijn variant met prijs voor je aan, en kopieert de prijs rechtstreeks vanuit het contentveld. De storefront toont de contentprijs en de checkout rekent de gekoppelde variant aan; omdat ze één bron delen, kunnen ze nooit uit elkaar lopen. Je beheert deze items als content (in de Admin van je app, in de builder of op je gepubliceerde site), niet onder Commerce > Products. Zie Contentbeheer.
Een gewone catalogus die geen kaartbetalingen verwerkt — een menu om te bladeren, of een winkel waarvan de “koop”-knop een WhatsApp-bestelkoppeling opent — is gewoon gewone content — een gewone cataloguscollectie, zonder Commerce-weving. Kaartcheckout is wat een collectie verkoopbaar maakt.
Een product aanmaken
Section titled “Een product aanmaken”Klik in Admin > 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 |
Drieletterse ISO-code — USD, EUR, GBP, JPY, BRL, MXN, INR… (130+ ondersteund) |
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 — standaard variantselectie is momenteel niet geïmplementeerd. |
media |
Koppel afbeeldingen of video’s via CDN-bestands-ID (zie Bestanden) |
Prijzen zijn onwijzigbaar. 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 de basisbouwsteen voor toegangscontrole. Maak een functie eenmalig aan in Admin > Commerce > Products en koppel deze vervolgens aan één of meer producten. Elke functie heeft een naam, een optionele beschrijving en een sleutel — kleine letters, cijfers en underscores (bijv. pro_features) — waartegen je app controleert.
Wanneer je een product aanmaakt, koppel je functies eraan via “resources”. Klanten die een abonnement nemen op een product krijgen toegang tot elke functie die eraan gekoppeld is.
Vervolgens gebruik je die sleutel in je app als toegangspoort:
const { hasAccess, isLoading } = useEntitlement('pro_features');
if (isLoading) return <Spinner />;if (!hasAccess) return <UpgradePrompt />;return <ProOnlyThing />;De controle wordt server-side uitgevoerd tegen de ingelogde sessie, zodat deze niet vanuit de browser kan worden nagemaakt. Zie Commerce Integreren in Mijn App voor het volledige patroon.
Opmerking: Gebruik altijd de functiesleutel als toegangspoort — de slug afgeleid van de functienaam (bijv.
pro_features) — niet het interne ID van de functie.
Zo beveilig je Pro-only pagina’s, API-endpoints of functies in je appcode.
Veelvoorkomende productvormen
Section titled “Veelvoorkomende 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 voorraadartikelen verkoopt, beheer dan de voorraadaantallen in de database van je app en controleer deze in je checkoutflow.
Binnenkort beschikbaar
Section titled “Binnenkort beschikbaar”- Aanpassing van checkoutvelden — verzamel aanvullende informatie van kopers
- Betaal-wat-je-wilt-prijsstelling
- Ingebouwde voorraadregistratie voor fysieke producten