قالب تجارة المنتجات الإلكترونية
منصة تجارة إلكترونية متكاملة: تعدّد بائعين، ومحرّر منتجات غني (Tiptap WYSIWYG)، وتسويق بالبريد (AWS SES)، وتحديد لمعدّل الطلبات (Upstash)، وتحليلات، وتتبّع للأخطاء عبر Sentry. مبنية على Next.js 16 مع Firebase Firestore وبوابة Moyasar للدفع.
هذه هي المنصّة التي تتصفّحها الآن: متجرٌ إنتاجي يبيع فيه الاستوديو منتجاته الرقمية — دوراتٍ وقوالبَ وأصولًا — إلى جانب خدماته الفعلية. بائعون متعددون، ومحرّرٌ يُظهِر ما ستراه تمامًا، وإيصالاتٌ ورسائلُ تنطلق تلقائيًا، وتحليلاتٌ حيّة، ودفعٌ عبر Moyasar يؤكّد كل عملية بـ Webhook موثَّق.
ما الذي يحلّه
- لا يجد الاستوديو مكانًا يبيع فيه منتجاته الرقمية — دوراتٍ وقوالبَ وأصولًا — إلى جانب خدماته الفعلية تحت سقفٍ واحد.
- تعيش الإيرادات والعمليات في جداول يدوية، دون لوحةٍ واحدة تجمع التحليلات والطلبات وإدارة المنتجات.
- تُرسَل تأكيدات الطلب وروابط التنزيل يدويًا بدل أن تنطلق تلقائيًا.
- تحتاج المدفوعات إلى بوابةٍ موثوقة بتحقُّقٍ من الـ Webhook وفحصٍ للاحتيال، لا إلى حلولٍ مرقّعة.
الأثر
إدارة بائعين متعددين
أوصاف منتجات غنية
مدعومٌ بـ AWS SES

البنية
تدفّق البيانات
- تصفح المنتجات (/[locale]/shop)
- الإضافة للسلة (Zustand + localStorage)
- الدفع → طلب Firestore (قيد الانتظار)
- /api/checkout → نموذج دفع Moyasar
- الدفع → Webhook من Moyasar (تحقُّق HMAC) → الطلب مدفوع
- AWS SES: إيصال + رابط تنزيل موقّع
- التنزيل → التحقق من الرمز → Firebase Storage يقدّم الملف
- لوحة الإدارة: الإيرادات والطلبات وإدارة المنتجات
القرارات الهندسية
دعم تعدّد البائعين
تُقسَّم مجموعات Firestore حسب معرّف البائع (UID)؛ فيرى المسؤول كل الطلبات، بينما لا يرى كل مستخدمٍ سوى طلباته.
Tiptap لأوصاف المدوّنة والمنتجات الغنية
يحفظ محرّر WYSIWYG التنسيق دون تحليلٍ مخصّص، فيكتب التجار محتوى غنيًا مباشرةً.
روابط تنزيل موقَّعة ومؤقّتة
وصولٌ قائم على رمزٍ عبر Firebase Cloud Functions يتحقق من التوقيع قبل تقديم أي ملفٍّ رقمي.
تأمين Webhook في Moyasar (HMAC-SHA256)
يُتحقَّق من كل Webhook دفعٍ بخوارزمية HMAC-SHA256 قبل تغيير حالة الطلب، حدًّا للاحتيال.
مسارات مفصولة حسب اللغة
المساران [locale]/shop و[locale]/admin، ويفرض الوسيط اللغة مع الرجوع إلى تفضيل المستخدم.
معرض الصور

