رفتن به محتوا

محصولات و ویژگی‌ها

تعریف کنید چه می‌فروشید. محصولاتی با یک یا چند variant بسازید و features قابل استفاده مجدد را برای کنترل دسترسی مبتنی بر entitlement ضمیمه کنید.

Proyecta Commerce از سه مفهوم استفاده می‌کند: products، variants و features.

  • Product — چیزی که می‌فروشید (مثلاً «Pro Plan»، «تی‌شرت»، «جلسه مشاوره استراتژی»)
  • Variant — یک سطح قیمت‌گذاری یا پیکربندی از یک محصول (مثلاً «Pro Monthly $29»، «Pro Annual $290»، «تی‌شرت – سایز بزرگ»)
  • Feature — یک کلید entitlement قابل استفاده مجدد که اپ شما در زمان اجرا بررسی می‌کند (مثلاً pro_features، unlimited_projects، api_access)

یک محصول می‌تواند چندین variant داشته باشد. همچنین هر محصول یک یا چند resource ضمیمه‌شده دارد — معمولاً features — که با خرید اشتراک توسط مشتری، دسترسی را فعال می‌کنند.

دو روش برای مدل‌سازی آنچه می‌فروشید

Section titled “دو روش برای مدل‌سازی آنچه می‌فروشید”

Commerce با سایر بخش‌های پلتفرم ترکیب می‌شود، بنابراین «چیزی که می‌فروشید» می‌تواند دو شکل داشته باشد — و Proyecta به‌طور خودکار شکل مناسب را انتخاب می‌کند:

  • محصولات بومی Commerce — اشتراک‌ها، پلان‌ها، ارتقاهای یک‌باره، و features/entitlements. مستقیماً در Admin > Commerce > Products تعریف می‌شوند. این همان مدلی است که در ادامه این صفحه توضیح داده می‌شود.
  • کاتالوگ محتوامحور — کالاهایی با تصویر، قیمت و توضیحات که صاحب کسب‌وکار روزانه آن‌ها را ویرایش می‌کند. این موارد در CMS به‌صورت یک sellable collection ذخیره می‌شوند: هر entry خود همان محصول است. هنگامی که یک entry منتشر می‌شود، Proyecta به‌طور خودکار آن را به‌عنوان یک محصول واقعی و قابل خرید در Commerce وارد می‌کند — محصول و variant قیمت‌گذاری‌شده‌اش را می‌سازد و قیمت را مستقیماً از فیلد محتوا کپی می‌کند. ویترین فروشگاه قیمت محتوا را نمایش می‌دهد و checkout از variant مرتبط شارژ می‌کند؛ و چون هر دو از یک منبع استفاده می‌کنند، هرگز تفاوتی بین‌شان ایجاد نمی‌شود. این آیتم‌ها را به‌عنوان محتوا مدیریت می‌کنید (در Admin اپ، در builder یا در سایت منتشرشده)، نه زیر Commerce > Products. به مدیریت محتوا مراجعه کنید.

یک کاتالوگ ساده که پرداخت کارتی ندارد — مثلاً یک منوی فقط-نمایشی، یا فروشگاهی که دکمه «خرید» آن یک لینک سفارش WhatsApp باز می‌کند — صرفاً یک محتوای معمولی است — یک collection کاتالوگ عادی، بدون ادغام با Commerce. پرداخت کارتی است که یک collection را قابل فروش می‌کند.

در Admin > Commerce > Products، روی Create product کلیک کنید (یا از AI بخواهید: "Create a Pro plan at $29/month and a Business plan at $99/month."). هر محصول نیاز دارد به:

  • یک display name (مثلاً «Pro»)
  • حداقل یک variant

هر variant قیمت‌گذاری مخصوص خودش را دارد:

فیلد توضیحات
name برچسب نمایشی برای variant («Monthly»، «Annual»، «Large»)
currency کد سه‌حرفی ISO — USD، EUR، GBP، JPY، BRL، MXN، INR و… (بیش از ۱۳۰ واحد پشتیبانی می‌شود)
unit_amount قیمت به کوچک‌ترین واحد ارزی (سنت). 2900 = $29.00
recurring اختیاری — { interval: 'week' | 'month' | 'year' }. برای قیمت‌های یک‌باره حذف شود. صورت‌حساب روزانه در حال حاضر پشتیبانی نمی‌شود.
is_default پذیرفته می‌شود اما هنوز اعمال نشده — انتخاب variant پیش‌فرض در حال حاضر پیاده‌سازی نشده است.
media تصویر یا ویدیو را از طریق CDN file ID ضمیمه کنید (به Files مراجعه کنید)

قیمت‌گذاری تغییرناپذیر است. پس از ساخته شدن یک variant، قیمتش قابل تغییر نیست — به جای آن یک variant جدید بسازید. این کار مشترکان موجود را از تغییرات قیمت ناخواسته محافظت می‌کند.

Features اولین primitive کنترل دسترسی هستند. یک feature را یک بار در Admin > Commerce > Products بسازید، سپس آن را به یک یا چند محصول ضمیمه کنید. هر feature یک نام، یک توضیحات اختیاری و یک key دارد — حروف کوچک، اعداد و زیرخط (مثلاً pro_features) — که اپ شما در برابر آن بررسی می‌کند.

وقتی یک محصول می‌سازید، features را از طریق «resources» به آن ضمیمه می‌کنید. مشترکانی که برای یک محصول اشتراک می‌گیرند، به تمام features ضمیمه‌شده به آن دسترسی پیدا می‌کنند.

سپس در اپ خود، بر اساس آن key دسترسی را کنترل کنید:

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

بررسی به‌صورت server-side در برابر session احراز هویت‌شده انجام می‌شود، بنابراین از مرورگر قابل جعل نیست. برای الگوی کامل، به ادغام Commerce در اپ مراجعه کنید.

توجه: همیشه دسترسی را بر اساس key ویژگی بررسی کنید — slug مشتق‌شده از نام feature (مثلاً pro_features) — نه id داخلی feature.

این روشی است که صفحات، endpoint های API یا ویژگی‌های اختصاصی 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 در حال حاضر موجودی کالاهای فیزیکی را ردیابی نمی‌کند. اگر کالاهای انبارشده می‌فروشید، تعداد موجودی را در پایگاه داده اپ خود مدیریت کنید و در جریان checkout بررسی نمایید.

  • سفارشی‌سازی فیلدهای Checkout — جمع‌آوری اطلاعات اضافی از خریداران
  • قیمت‌گذاری به دلخواه خریدار
  • ردیابی موجودی داخلی برای کالاهای فیزیکی