Ga naar inhoud

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.

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

Elke variant heeft zijn eigen prijsstelling:

VeldOpmerkingen
nameWeergavelabel voor de variant (“Monthly”, “Annual”, “Large”)
currencyDrieletterige ISO-code — USD, EUR, GBP, JPY, BRL, MXN, INR… (de SDK ondersteunt 130+)
unit_amountPrijs in de kleinste valuta-eenheid (centen). 2900 = $29.00
recurringOptioneel — { interval: 'week' | 'month' | 'year' }. Weglaten voor eenmalige prijzen. Dagelijkse facturering wordt momenteel niet ondersteund.
is_defaultGeaccepteerd maar nog niet afgedwongen — selectie van standaardvariant is momenteel niet geïmplementeerd.
mediaKoppel 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 zijn het basisprimitief voor toegangscontrole. Maak een functie eenmalig aan en koppel deze vervolgens aan één of meer producten.

// 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')
});

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_id moet de functie sleutel zijn — de slug afgeleid van de functienaam (bijv. pro_features), niet de .id-eigenschap van het functie-object dat door features.create() wordt geretourneerd.

Zo kun je Pro-exclusieve pagina’s, API-endpoints of functies in je app-code afschermen.

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.

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.

  • Aanpassing van checkout-velden — verzamel aanvullende informatie van kopers
  • Betaal-wat-je-wilt-prijsstelling
  • Ingebouwde voorraadregistratie voor fysieke producten