Продукты и функции
Определите, что вы продаёте. Создавайте продукты с одним или несколькими вариантами, добавляйте переиспользуемые функции для управления доступом на основе прав.
Proyecta Commerce использует три концепции: продукты, варианты и функции.
- Продукт — то, что вы продаёте (например, «Pro Plan», «Футболка», «Стратегическая консультация»)
- Вариант — ценовой уровень или конфигурация продукта (например, «Pro Monthly $29», «Pro Annual $290», «Футболка — L»)
- Функция — переиспользуемый ключ права доступа, который ваше приложение проверяет во время выполнения (например,
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 (см. Files) |
Цена неизменяема. После создания варианта его цену нельзя изменить — создайте новый вариант. Это защищает существующих подписчиков от случайного изменения цен.
Функции (права доступа)
Заголовок раздела «Функции (права доступа)»Функции — это базовый примитив управления доступом. Создайте функцию один раз, а затем привяжите её к одному или нескольким продуктам.
// 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должен быть ключом функции — слагом, производным от названия функции (например,pro_features), а не свойством.idобъекта функции, возвращаемым методомfeatures.create().
Именно так вы закрываете доступ к страницам, API endpoint-ам или возможностям, доступным только в Pro, в коде приложения.
Типичные конфигурации продуктов
Заголовок раздела «Типичные конфигурации продуктов»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 в настоящее время не ведёт учёт товарных запасов для физических продуктов. Если вы продаёте складские товары, управляйте количеством остатков в базе данных вашего приложения и проверяйте их в процессе оформления заказа.
Скоро появится
Заголовок раздела «Скоро появится»- Настройка полей при оформлении заказа — сбор дополнительной информации от покупателей
- Ценообразование «заплати сколько хочешь»
- Встроенный учёт товарных запасов для физических продуктов