نظرة عامة على مشروع Stockline
نوع العمل
تطبيق ويب متكامل لإدارة الطلبات والمخزون بشكل آلي بالكامل (End-to-End Automated Order Fulfillment System). المشروع يجمع بين واجهة استخدام مخصصة، وطبقة API وسيطة، ومحرك أتمتة (n8n) يقوم بكل المنطق التشغيلي دون تدخل بشري — بداية من استلام الطلب وحتى إرسال الفاتورة أو إشعار عدم التوفر عبر البريد الإلكتروني.
باختصار: العميل يطلب منتجًا → النظام يتحقق من المخزون تلقائيًا → يُرسل فاتورة PDF فعلية أو رسالة اعتذار، دون أي تدخل يدوي من صاحب المتجر.
الميزات الرئيسية
من جهة العميل (Order Page)
نموذج طلب بسيط (الاسم، البريد، المنتج، الكمية)
قائمة المنتجات تُحمَّل مباشرة من المخزون الفعلي (تتحدث تلقائيًا)
تحقق فوري من التوفر قبل تأكيد الطلب
إرسال فاتورة PDF حقيقية بالبريد عند التوفر، أو رسالة اعتذار عند نفاد الكمية
من جهة الإدارة (Admin Page)
إضافة منتجات جديدة (الاسم، الكمية، السعر)
تعديل الكمية المتاحة لأي منتج موجود مباشرة من نفس الصفحة
عرض حالة كل منتج (متوفر / غير متوفر) بشكل مباشر
على مستوى النظام
لا حاجة لتدخل بشري في أي خطوة من خطوات معالجة الطلب
قاعدة بيانات بسيطة وسهلة الإدارة (Google Sheets) بدل نظام قواعد بيانات معقد
تصميم بصري احترافي وهادئ (Minimal/Clean) خاص بالمنتج
طريقة التنفيذ
المشروع مبني على معمارية من ثلاث طبقات منفصلة، كل طبقة مسؤولة عن دور واحد فقط:
الواجهة الأمامية | HTML / CSS / JavaScript | عرض النماذج واستقبال بيانات المستخدم فقط
الطبقة الوسيطة | FastAPI (Python) | استقبال الطلبات من الواجهة وتمريرها إلى n8n دون أي منطق عمل بداخلها
محرك الأتمتة | n8n (Webhooks) | كل منطق العمل الفعلي: التحقق من المخزون، توليد الفاتورة، إرسال البريد، تحديث المخزون
قاعدة البيانات | Google Sheets | تخزين بيانات المنتجات والطلبات
تدفق العملية الكامل:
1-الواجهة الأمامية ترسل بيانات الطلب إلى FastAPI
2- FastAPI يمرر البيانات إلى Webhook مخصص في n8n
3- n8n يبحث عن المنتج في جدول المخزون (Google Sheets)
4- عقدة شرطية (If) تقارن الكمية المطلوبة بالكمية المتاحة
5- عند التوفر: توليد فاتورة PDF فعلية (عبر Code + PDF Generator API) وإرسالها بالبريد، مع تحديث المخزون تلقائيًا
6- عند عدم التوفر: إرسال رسالة اعتذار بالبريد مباشرة
7- الاستجابة النهائية (متوفر/غير متوفر) تعود إلى الواجهة عبر FastAPI لعرضها للمستخدم فورًا
هذا الفصل بين الطبقات جعل من الممكن تطوير كل جزء وتصحيح أخطائه بشكل مستقل — وهو بالضبط ما ساعدنا في تتبع وإصلاح المشاكل خطوة بخطوة خلال بناء المشروع.