Przejdź do głównej zawartości

Produkty i funkcje

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

Proyecta Commerce opiera się na trzech pojęciach: produktach, wariantach i funkcjach.

  • 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 uprawnień, 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ę też jeden lub więcej zasobów — zazwyczaj funkcji — które przyznają dostęp po wykupieniu subskrypcji przez klienta.

Commerce komponuje się z resztą platformy, dlatego istnieją dwa kształty „rzeczy do sprzedania“ — a Proyecta automatycznie wybiera właściwy:

  • Produkty natywne Commerce — subskrypcje, plany, jednorazowe ulepszenia oraz funkcje/uprawnienia. Definiowane bezpośrednio w Admin > Commerce > Products. To właśnie ten model opisuje reszta tej strony.
  • Katalog produktów oparty na treści — towary ze zdjęciami, cenami i opisami, które właściciel firmy edytuje na co dzień. Żyją w CMS jako kolekcja sprzedawalna: każdy wpis jest produktem. Po opublikowaniu wpisu Proyecta automatycznie wplata go do Commerce jako prawdziwy, możliwy do zakupu produkt — tworząc produkt i jego wyceniony wariant, a cenę kopiując wprost z pola treści. Storefront wyświetla cenę z treści, a przy kasie pobierana jest opłata za powiązany wariant; ponieważ mają jedno wspólne źródło, nigdy nie mogą się rozejść. Tymi pozycjami zarządzasz jako treścią (w Admin aplikacji, w builderze lub na opublikowanej stronie), a nie w Commerce > Products. Zobacz Zarządzanie treścią.

Zwykły katalog, który nie obsługuje płatności kartą — menu tylko do przeglądania lub sklep, w którym przycisk „kup“ otwiera link do zamówienia przez WhatsApp — to po prostu zwykła treść: zwykła kolekcja katalogowa bez integracji z Commerce. Płatność kartą jest tym, co sprawia, że kolekcja staje się sprzedawalna.

W Admin > 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 potrzebuje:

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

Każdy wariant ma własną cenę:

Pole Uwagi
name Etykieta wyświetlana dla wariantu („Monthly“, „Annual“, „Large“)
currency Trzyliterowy kod ISO — USD, EUR, GBP, JPY, BRL, MXN, INR… (ponad 130 obsługiwanych)
unit_amount Cena w najmniejszej jednostce waluty (grosze/centy). 2900 = 29,00 USD
recurring Opcjonalne — { interval: 'week' | 'month' | 'year' }. Pomiń dla cen jednorazowych. Rozliczenia dzienne nie są obecnie obsługiwane.
is_default Akceptowane, ale jeszcze nieegzekwowane — wybór domyślnego wariantu nie jest obecnie zaimplementowany.
media Dołącz obrazy lub filmy za pomocą identyfikatora pliku CDN (zobacz Pliki)

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

Funkcje to podstawowy element kontroli dostępu. Utwórz funkcję raz w Admin > Commerce > Products, a następnie dołącz ją do jednego lub więcej produktów. Każda funkcja ma nazwę, opcjonalny opis i klucz — małe litery, cyfry i podkreślenia (np. pro_features) — który jest sprawdzany przez Twoją aplikację.

Tworząc produkt, dołączasz do niego funkcje poprzez „zasoby“. Klienci, którzy subskrybują produkt, uzyskują dostęp do wszystkich funkcji do niego dołączonych.

Następnie w aplikacji możesz ograniczyć dostęp na podstawie tego klucza:

const { hasAccess, isLoading } = useEntitlement('pro_features');
if (isLoading) return <Spinner />;
if (!hasAccess) return <UpgradePrompt />;
return <ProOnlyThing />;

Sprawdzenie odbywa się po stronie serwera na podstawie zalogowanej sesji, więc nie można go sfałszować z poziomu przeglądarki. Pełny wzorzec znajdziesz w artykule Integracja Commerce z aplikacją.

Uwaga: Zawsze ograniczaj dostęp na podstawie klucza funkcji — sluga wynikającego z nazwy funkcji (np. pro_features) — a nie wewnętrznego identyfikatora funkcji.

W ten sposób możesz chronić strony dostępne tylko w planie Pro, endpointy API lub inne funkcje w kodzie swojej 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.

Towary fizyczne

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

Towary 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 stanu magazynowego produktów fizycznych. Jeśli sprzedajesz produkty z ograniczoną dostępnością, zarządzaj stanem magazynowym w bazie danych swojej aplikacji i sprawdzaj go w procesie realizacji zamówienia.

  • Personalizacja pól kasy — zbieranie dodatkowych informacji od kupujących
  • Ceny „zapłać, ile chcesz“
  • Wbudowane śledzenie stanu magazynowego dla produktów fizycznych