Przejdź do głównej zawartości

Produkty i funkcje

Zdefiniuj, co sprzedajesz. Twórz produkty z jednym lub więcej wariantami, dołączaj wielokrotnie używane funkcje do kontroli dostępu opartej na uprawnieniach.

Proyecta Commerce opiera się na trzech pojęciach: produkty, warianty i funkcje.

  • Produkt — to, co sprzedajesz (np. „Plan Pro”, „Koszulka”, „Konsultacja strategiczna”)
  • Wariant — poziom cenowy lub konfiguracja produktu (np. „Pro Miesięcznie 29 USD”, „Pro Rocznie 290 USD”, „Koszulka – Rozmiar L”)
  • Funkcja — wielokrotnie używany klucz uprawnienia, który Twoja aplikacja sprawdza w czasie działania (np. pro_features, unlimited_projects, api_access)

Produkt może mieć wiele wariantów. Do produktu dołącza się również jeden lub więcej zasobów — zazwyczaj funkcje — które przyznają dostęp w momencie subskrypcji przez klienta.

W Dashboard > Commerce > Products kliknij Create product (lub zapytaj AI: "Create a Pro plan at $29/month and a Business plan at $99/month."). Każdy produkt wymaga:

  • Nazwy wyświetlanej (np. „Pro”)
  • Co najmniej jednego wariantu

Każdy wariant ma własne ustawienia cenowe:

PoleUwagi
nameEtykieta wyświetlana dla wariantu („Monthly”, „Annual”, „Large”)
currencyTrzyliterowy kod ISO — USD, EUR, GBP, JPY, BRL, MXN, INR… (SDK obsługuje ponad 130)
unit_amountCena w najmniejszej jednostce waluty (grosze/centy). 2900 = 29,00 USD
recurringOpcjonalne — { interval: 'week' | 'month' | 'year' }. Pomiń dla cen jednorazowych. Rozliczenie dzienne nie jest obecnie obsługiwane.
is_defaultAkceptowane, ale jeszcze nieegzekwowane — wybór domyślnego wariantu nie jest obecnie zaimplementowany.
mediaDołącz obrazy lub filmy za pomocą identyfikatora pliku CDN (zob. Pliki)

Ceny są niezmienne. Po utworzeniu wariantu jego ceny nie można zmienić — zamiast tego utwórz nowy wariant. Chroni to istniejących subskrybentów przed przypadkowymi zmianami cen.

Funkcje to podstawowy mechanizm kontroli dostępu. Utwórz funkcję raz, a następnie dołącz ją do jednego lub więcej produktów.

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

Podczas tworzenia produktu dołączasz do niego funkcje za pomocą „zasobów”. Klienci, którzy subskrybują produkt, uzyskują dostęp do każdej funkcji do niego dołączonej.

Następnie w swojej aplikacji sprawdź, czy klient ma dostęp:

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

Uwaga: resource_id musi być kluczem funkcji — slugiem wywiedzionym z nazwy funkcji (np. pro_features), a nie właściwością .id obiektu funkcji zwracaną przez features.create().

W ten sposób blokujesz dostęp do stron tylko dla Pro, endpointów API lub funkcji w kodzie Twojej aplikacji.

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

Produkty fizyczne

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

Produkty cyfrowe

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

Darowizny

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

Proyecta Commerce nie śledzi obecnie stanów magazynowych produktów fizycznych. Jeśli sprzedajesz produkty z ograniczonymi zasobami, zarządzaj stanami magazynowymi w bazie danych swojej aplikacji i sprawdzaj je w procesie realizacji zamówienia.

  • Dostosowywanie pól przy kasie — zbieranie dodatkowych informacji od kupujących
  • Cennik „zapłać ile chcesz”
  • Wbudowane śledzenie stanów magazynowych dla produktów fizycznych