Sari la conținut

Produse și funcționalități

Definește ce vinzi. Creează produse cu una sau mai multe variante, atașează funcționalități reutilizabile pentru controlul accesului bazat pe drepturi.

Proyecta Commerce folosește trei concepte: produse, variante și funcționalități.

  • Produs — ceea ce vinzi (ex. „Plan Pro”, „Tricou”, „Consultație Strategie”)
  • Variantă — un nivel de prețuri sau o configurație a unui produs (ex. „Pro Lunar $29”, „Pro Anual $290”, „Tricou – Large”)
  • Funcționalitate — o cheie de acces reutilizabilă pe care aplicația ta o verifică la runtime (ex. pro_features, unlimited_projects, api_access)

Un produs poate avea mai multe variante. Un produs are, de asemenea, una sau mai multe resurse atașate — de obicei funcționalități — care acordă acces atunci când un client se abonează.

În Dashboard > Commerce > Products, apasă Create product (sau întreabă AI-ul: "Create a Pro plan at $29/month and a Business plan at $99/month."). Fiecare produs necesită:

  • Un nume afișat (ex. „Pro”)
  • Cel puțin o variantă

Fiecare variantă are propriul său preț:

CâmpNote
nameEticheta afișată pentru variantă („Monthly”, „Annual”, „Large”)
currencyCod ISO din trei litere — USD, EUR, GBP, JPY, BRL, MXN, INR… (SDK-ul suportă 130+)
unit_amountPrețul în cea mai mică unitate monetară (cenți). 2900 = $29.00
recurringOpțional — { interval: 'week' | 'month' | 'year' }. Omite pentru prețuri unice. Facturarea zilnică nu este suportată în prezent.
is_defaultAcceptat, dar neaplica încă — selecția variantei implicite nu este implementată în prezent.
mediaAtașează imagini sau videoclipuri prin ID-ul fișierului CDN (vezi Fișiere)

Prețurile sunt imuabile. Odată creată o variantă, prețul nu poate fi modificat — creează o variantă nouă în schimb. Aceasta protejează abonații existenți de modificări accidentale de preț.

Funcționalitățile sunt elementul de bază al controlului accesului. Creează o funcționalitate o singură dată, apoi atașeaz-o la unul sau mai multe produse.

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

Când creezi un produs, atașezi funcționalități la acesta prin intermediul „resurselor”. Clienții care se abonează la un produs obțin acces la fiecare funcționalitate atașată acestuia.

Apoi, în aplicația ta, verifici dacă un client are acces:

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

Notă: resource_id trebuie să fie cheia funcționalității — slug-ul derivat din numele funcționalității (ex. pro_features), nu proprietatea .id a obiectului funcționalitate returnată de features.create().

Astfel poți restricționa accesul la pagini, endpoint-uri API sau funcționalități disponibile doar utilizatorilor Pro din codul aplicației tale.

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

Produse fizice

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

Produse digitale

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

Donații

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

Proyecta Commerce nu urmărește în prezent stocurile pentru produsele fizice. Dacă vinzi articole stocate, gestionează cantitățile din baza de date a aplicației tale și verifică-le în fluxul de checkout.

  • Personalizarea câmpurilor din checkout — colectează informații suplimentare de la cumpărători
  • Prețuri „plătești cât vrei”
  • Urmărire integrată a stocurilor pentru produse fizice