Перейти к содержимому

Интеграция коммерции в приложение

Запускай оформление заказов и ограничивай доступ к премиум-функциям прямо из кода приложения.

После подключения Stripe и создания продукта твоё приложение уже может принимать платежи. В приложении, созданном в Proyecta, это работает из браузера через публичный commerce API — тебе не нужно поднимать бэкенд, и секретный ключ здесь не участвует.

Каталоги витрины — это контент. Если твои продукты представляют собой контентную продаваемую коллекцию (см. Продукты и функции), ты читаешь каталог и отображаешь цены через API Контента — данные о продуктах хранятся там. Оформление заказа запускается точно так же, через передачу variant_id связанного Commerce-продукта.

import * as platform from '@/lib/platformClient.ts';
import { useEntitlement } from '@/hooks/useEntitlement.ts';

commerceCheckout создаёт checkout-сессию, размещённую на стороне Stripe, и возвращает URL, куда нужно отправить покупателя. Клиента предварительно создавать не нужно — платформа записывает его по самому оформлению заказа:

const { url } = await platform.commerceCheckout({
lineItems: [{ variantId: 'var_pro_monthly', quantity: 1 }],
successUrl: 'https://myapp.com/welcome',
cancelUrl: 'https://myapp.com/pricing',
customerEmail: shopperEmail, // optional — prefills Stripe checkout
});
window.location.href = url;

Поддерживается несколько позиций в заказе. Для подписок quantity означает количество мест. Если покупатель ввёл промокод, передай его дальше — сервер проверит код и рассчитает скидку по твоим данным Commerce, а не по сумме, присланной из браузера.

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

Ключ — это slug функции (например, pro_features), а не id её объекта. Проверка выполняется на сервере и привязана к авторизованной сессии, поэтому подделать её из браузера нельзя. Подробнее о модели прав доступа см. в разделе Продукты и функции.

  • "Build a /pricing page that shows my products and starts a checkout when a button is clicked."
  • "Gate the /pro route so only customers with pro_features access can see it."
  • "Add a cart with a coupon code field and a Checkout button."