تخطَّ إلى المحتوى

المنتجات والميزات

حدّد ما تبيعه. أنشئ منتجات بـمتغيرات واحدة أو أكثر، وأضف ميزات قابلة لإعادة الاستخدام للتحكم في الوصول القائم على الصلاحيات.

يعتمد Proyecta Commerce على ثلاثة مفاهيم أساسية: المنتجات، والمتغيرات، والميزات.

  • المنتج — الشيء الذي تبيعه (مثل “الخطة الاحترافية”، “قميص”، “جلسة استشارية”)
  • المتغير — مستوى تسعير أو إعداد معين للمنتج (مثل “احترافي شهري بـ$29”، “احترافي سنوي بـ$290”، “قميص – مقاس كبير”)
  • الميزة — مفتاح صلاحية قابل لإعادة الاستخدام يتحقق منه تطبيقك أثناء التشغيل (مثل pro_features، unlimited_projects، api_access)

يمكن أن يحتوي المنتج على عدة متغيرات. كما يمتلك المنتج موارد مرتبطة به — عادةً ميزات — تمنح العميل حق الوصول عند اشتراكه.

في Dashboard > Commerce > Products، انقر على Create product (أو اطلب من الذكاء الاصطناعي: "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 (انظر الملفات)

التسعير غير قابل للتعديل. بمجرد إنشاء متغير، لا يمكن تغيير سعره — أنشئ متغيرًا جديدًا بدلًا من ذلك. هذا يحمي المشتركين الحاليين من تغييرات الأسعار غير المقصودة.

الميزات هي الوحدة الأساسية للتحكم في الوصول. أنشئ ميزة مرة واحدة، ثم أرفقها بمنتج واحد أو أكثر.

// 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 هو مفتاح الميزة — الاسم المختصر المشتق من اسم الميزة (مثل pro_features)، وليس خاصية .id الخاصة بكائن الميزة التي يُعيدها features.create().

هكذا تتحكم في الوصول إلى الصفحات الحصرية للمستخدمين الاحترافيين، أو endpoint الـAPI، أو الميزات في كود تطبيقك.

أشكال المنتجات الشائعة

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 المخزون للمنتجات المادية حاليًا. إذا كنت تبيع منتجات مخزونة، فأدِر أعداد المخزون في قاعدة بيانات تطبيقك وتحقق منها في سير عملية الدفع.

  • تخصيص حقول الدفع — جمع معلومات إضافية من المشترين
  • تسعير “ادفع ما تريد”
  • تتبع المخزون المدمج للمنتجات المادية