Перейти до вмісту

Продукти та функції

Визначте, що ви продаєте. Створюйте продукти з одним або кількома варіантами, додавайте багаторазові функції для контролю доступу на основі прав.

Proyecta Commerce використовує три концепції: продукти, варіанти та функції.

  • Продукт — те, що ви продаєте (наприклад, «Pro Plan», «Футболка», «Стратегічна консультація»)
  • Варіант — ціновий рівень або конфігурація продукту (наприклад, «Pro Monthly $29», «Pro Annual $290», «Футболка — Великий розмір»)
  • Функція — багаторазовий ключ права доступу, який твій застосунок перевіряє під час виконання (наприклад, pro_features, unlimited_projects, api_access)

Продукт може мати кілька варіантів. До продукту також прив’язуються один або кілька ресурсів — зазвичай функції — які надають доступ після оформлення підписки.

У Dashboard > Commerce > Products натисни Create product (або запитай у AI: "Create a Pro plan at $29/month and a Business plan at $99/month."). Кожен продукт потребує:

  • Відображувана назва (наприклад, «Pro»)
  • Принаймні один варіант

Кожен варіант має власні налаштування ціни:

ПолеПримітки
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 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')
});

Коли ти створюєш продукт, ти прив’язуєш до нього функції через «ресурси». Клієнти, які оформили підписку на продукт, отримують доступ до всіх прив’язаних до нього функцій.

Далі в коді застосунку перевір, чи має клієнт доступ:

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.

Proyecta Commerce наразі не відстежує залишки для фізичних продуктів. Якщо ти продаєш товари зі складу, керуй кількістю в базі даних свого застосунку та перевіряй їх у процесі оформлення замовлення.

  • Налаштування полів при оформленні — збирай додаткову інформацію від покупців
  • Ціноутворення «платіть скільки хочете»
  • Вбудоване відстеження інвентарю для фізичних продуктів