رفتن به محتوا

یکپارچه‌سازی تجارت در اپلیکیشن

checkout را شروع کن و ویژگی‌های پریمیوم را مستقیماً از کد اپلیکیشنت محدود کن.

پس از اتصال Stripe و ایجاد یک محصول، اپلیکیشن تو می‌تواند پرداخت بگیرد. در یک اپ ساخته‌شده با Proyecta این کار از داخل مرورگر و در برابر commerce API عمومی انجام می‌شود — نه بک‌اندی هست که خودت راه بیندازی و نه کلید مخفی‌ای در کار است.

کاتالوگ‌های فروشگاه، محتوا هستند. اگر محصولات شما یک مجموعه قابل فروش با پشتوانه محتوا هستند (ببین Products & Features)، کاتالوگ را خوانده و قیمت‌ها را از طریق API Content نمایش می‌دهی — داده‌های محصول در آنجا قرار دارند. شروع checkout به همان شکل است و variant_id محصول Commerce بافته‌شده را پاس می‌دهی.

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

commerceCheckout یک checkout session میزبانی‌شده توسط Stripe ایجاد می‌کند و یک URL برمی‌گرداند که خریدار را به آن می‌فرستی. لازم نیست از قبل مشتری بسازی — پلتفرم خودش از همان checkout یک مشتری ثبت می‌کند:

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;

چندین line item پشتیبانی می‌شود. برای اشتراک‌ها، quantity تعداد صندلی (seat) است. اگر خریدار یک کد کوپن وارد کرده بود، آن را هم بفرست — سرور آن را اعتبارسنجی می‌کند و مقدار تخفیف را از داده‌های commerce تو محاسبه می‌کند، هرگز از مبلغی که مرورگر می‌فرستد.

محدود کردن یک ویژگی پریمیوم

Section titled “محدود کردن یک ویژگی پریمیوم”
const { hasAccess, isLoading } = useEntitlement('pro_features');
if (isLoading) return <Spinner />;
if (!hasAccess) return <UpgradePrompt />;
return <ProOnlyThing />;

کلید همان اسلاگ ویژگی است (مثلاً pro_features)، نه id شیء ویژگی. این بررسی سمت سرور انجام می‌شود و به session کاربر واردشده گره خورده است، پس از داخل مرورگر قابل جعل نیست. برای مدل استحقاق (entitlement) به Products & Features مراجعه کن.

  • "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."