Продукти та функції
Визначте, що ви продаєте. Створюйте продукти з одним або кількома варіантами, додавайте багаторазові функції для контролю доступу на основі прав.
Proyecta Commerce використовує три концепції: продукти, варіанти та функції.
- Продукт — те, що ви продаєте (наприклад, «Pro Plan», «Футболка», «Стратегічна консультація»)
- Варіант — ціновий рівень або конфігурація продукту (наприклад, «Pro Monthly $29», «Pro Annual $290», «Футболка — Великий розмір»)
- Функція — багаторазовий ключ права доступу, який твій застосунок перевіряє під час виконання (наприклад,
pro_features,unlimited_projects,api_access)
Продукт може мати кілька варіантів. До продукту також прив’язуються один або кілька ресурсів — зазвичай функції — які надають доступ після оформлення підписки.
Створення продукту
Section titled “Створення продукту”У Dashboard > Commerce > Products натисни Create product (або запитай у AI: "Create a Pro plan at $29/month and a Business plan at $99/month."). Кожен продукт потребує:
- Відображувана назва (наприклад, «Pro»)
- Принаймні один варіант
Варіанти
Section titled “Варіанти”Кожен варіант має власні налаштування ціни:
| Поле | Примітки |
|---|---|
name | Відображувана назва варіанта («Monthly», «Annual», «Large») |
currency | Тризначний код ISO — USD, EUR, GBP, JPY, BRL, MXN, INR… (SDK підтримує 130+) |
unit_amount | Ціна в найменших одиницях валюти (центи). 2900 = $29.00 |
recurring | Необов’язково — { interval: 'week' | 'month' | 'year' }. Не вказуй для разових платежів. Щоденне нарахування наразі не підтримується. |
is_default | Приймається, але поки не застосовується — вибір варіанта за замовчуванням ще не реалізовано. |
media | Прикріпи зображення або відео за CDN-ідентифікатором файлу (див. Файли) |
Ціни незмінні. Після створення варіанта його ціну не можна змінити — натомість створи новий варіант. Це захищає наявних підписників від випадкової зміни цін.
Функції (права доступу)
Section titled “Функції (права доступу)”Функції — це базовий примітив контролю доступу. Створи функцію один раз, а потім прив’язуй її до одного або кількох продуктів.
// Create a featureconst 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')});Коли ти створюєш продукт, ти прив’язуєш до нього функції через «ресурси». Клієнти, які оформили підписку на продукт, отримують доступ до всіх прив’язаних до нього функцій.
Далі в коді застосунку перевір, чи має клієнт доступ:
const { has_access } = await proyecta.commerce.check({ customer_id: 'cus_123', resource_id: 'pro_features',});Примітка:
resource_idмає бути ключем функції — slug, похідним від назви функції (наприклад,pro_features), а не властивістю.idоб’єкта функції, яку повертаєfeatures.create().
Саме так ти обмежуєш доступ до сторінок, API endpoint-ів або функцій застосунку, доступних лише для Pro.
Типові форми продуктів
Section titled “Типові форми продуктів”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.Фізичні товари
Create a T-shirt product with three variants: Small, Medium, Large at $25 each.Цифрові товари
Create a course product with a single one-time variant at $149.Пожертви
Create a donation product with three variants: $25, $50, $100 — all one-time.Інвентар
Section titled “Інвентар”Proyecta Commerce наразі не відстежує залишки для фізичних продуктів. Якщо ти продаєш товари зі складу, керуй кількістю в базі даних свого застосунку та перевіряй їх у процесі оформлення замовлення.
Незабаром
Section titled “Незабаром”- Налаштування полів при оформленні — збирай додаткову інформацію від покупців
- Ціноутворення «платіть скільки хочете»
- Вбудоване відстеження інвентарю для фізичних продуктів