الرجوع إلى قائمة المقالات

ابنِ نظام مبيعات ومخزون لمتجرك بالذكاء الاصطناعي — سبع خطوات بالصور

برنامج مبيعات ومخزون عربي بالذكاء الاصطناعي على سيرفرك | مرام هوست - ابنِ نظام مبيعات ومخزون لمتجرك بالذكاء الاصطناعي — سبع خطوات بالصور

عند كل صاحب محل في العراق الدفتر نفسه: صفحة للبضاعة، وصفحة للديون، وحساب في آخر اليوم لا يطابق الصندوق. والبرامج الجاهزة إمّا غالية، أو إنجليزية، أو مبنية لسوق آخر لا يعرف البيع بالآجل ولا الدينار.

في هذا الدليل نبني بديلاً: نظام مبيعات ومخزون عربي كامل — المنتجات، والكميات، وشاشة بيع، وفاتورة تُطبع، وتقرير يومي بالأرباح، وحسابات للموظفين — ونشغّله على سيرفر خاص بك. لن نكتب سطر كود واحد بأيدينا: سنصف ما نريد لوكيل ذكاء اصطناعي، ونراجع ما ينتجه خطوة بخطوة.

لوحة النظام الرئيسية تعرض مبيعات اليوم وربح اليوم وعدد الفواتير وقيمة المخزون مع جدول المواد التي قاربت على النفاد وآخر الفواتير
هذه هي النتيجة النهائية — لوحة النظام الذي بنيناه، وهي تعمل الآن فعلاً على جهاز تجريبي من مرام

كل الصور في هذا المقال من النظام وهو يعمل على سيرفر حقيقي، والبيانات فيها من عمليات بيع نفّذناها بأنفسنا داخله. النتيجة التي ستحصل عليها ستشبه هذه وإن اختلفت التفاصيل — الوكيل لا يكرّر نفسه حرفياً، وهذا في صالحك: أنت من يوجّهه نحو ما يناسب محلّك.

قبل أن تبدأ

هذا المقال يفترض أن عندك سيرفراً جاهزاً وأداة ذكاء اصطناعي مفعّلة عليه. إن لم يكن، فابدأ من الدليل الأساس أولاً — فيه شراء السيرفر، وتنصيب Claude Code وCodex، وطريقة التفعيل بالصور:

👈 شغّل Claude Code و Codex على سيرفرك: الدليل المصوّر للتنصيب والتفعيل

ما بنينا عليه هذا النظام: باقة S-VPS 4 بأربعة أنوية و8 غيغابايت ذاكرة، بنظام أوبنتو 24.04. والوقت الكلّي من الطلب الأول إلى نظام يعمل: أقل من ساعتين، أكثرها قضيناه في التجربة والتصحيح لا في الانتظار.

كيف تطلب السيرفر؟ خمس دقائق

لا تحتاج معرفة تقنية لطلب السيرفر — الخطوات أقرب إلى شراء اشتراك إنترنت منها إلى أي شيء تقني:

  1. افتح صفحة باقات VPS واختر الباقة المناسبة (الجدول أدناه يساعدك).
  2. في صفحة الإعداد اختر نظام التشغيل — اختر Ubuntu-24، فهو ما تعمل عليه الأدوات بأقل مشاكل.
  3. اختر دورة الفوترة: شهري، أو سنوي بخصم يقارب السُّبع.
  4. أضف إلى السلة، وادفع بالدينار العراقي عبر زين كاش أو بطاقة فيزا وماستركارد.
  5. خلال دقائق تصلك رسالة فيها عنوان الجهاز واسم المستخدم وكلمة المرور — ومنفذ الدخول 2026.
صفحة إعداد الطلب في مرام هوست تعرض مواصفات باقة S-VPS 4 وخيار دورة الفوترة الشهرية والسنوية واختيار نظام التشغيل وعدد النسخ الاحتياطية
صفحة إعداد الطلب — وفيها الخياران الوحيدان اللذان يهمّانك فعلاً: نظام التشغيل ودورة الفوترة. الباقي مضبوط مسبقاً

أي باقة تختار؟

الباقةالمواردالشهريهل تصلح للعمل مع الوكيل؟
S-VPS 2نواة · 2 غيغابايت8 دولاراتلا للبناء. تصلح لاستضافة البرنامج بعد أن يكتمل ويخفّ.
S-VPS 3نواتان · 4 غيغابايت17 دولاراًالحد الأدنى العملي. يعمل، مع بطء محسوس في المهام الطويلة.
S-VPS 44 أنوية · 8 غيغابايت29 دولاراًالمريح — وهو ما بنينا عليه كل مقالات هذه السلسلة.

لماذا لا تكفي أرخص باقة؟ لأن الوكيل لا يكتب سطراً وينتظر: يقرأ عشرات الملفات، ويشغّل التنصيب، ويرفع الخادم، ويختبر — في اللحظة نفسها. بنواة واحدة وغيغابايت واحد ستختنق الجلسة قبل أن تُنهي الطلب الثالث، وستظن أن الأداة ضعيفة بينما المشكلة في الجهاز.

كيف تستخدم الأداة وأنت لست مبرمجاً؟

هذا هو السؤال الذي يوقف أكثر الناس. والجواب أبسط ممّا تظن: أنت لا تقرأ الكود، بل تقرأ الوصف وتجرّب النتيجة. الوكيل يشرح ما سيفعله بلغة بسيطة قبل أن يفعله، ويطلب إذنك، وينفّذ، ثم يخبرك بما جرى.

مخطط يقسم الأدوار بين صاحب العمل والوكيل: أنت تصف وتوافق وتجرّب وتقرّر، والوكيل يقرأ ويخطّط ويكتب ويشغّل ويشرح
الأدوار واضحة: هو مسؤول عن أن يعمل الكود، وأنت مسؤول عن أن يكون البرنامج ما يحتاجه محلّك

كيف تجري الجلسة عملياً؟

تدخل إلى سيرفرك، وتنتقل إلى مجلد المشروع، وتكتب اسم الأداة — فتفتح شاشة تكتب فيها طلبك بالعربية. ثم تتكرّر أربع خطوات:

  1. تكتب الطلب وتضغط Enter.
  2. يعرض عليك خطة قبل التنفيذ في المهام غير البديهية — اقرأها. إن رأيت فيها ما لم تطلبه، قل «لا تفعل كذا» قبل أن يبدأ.
  3. يطلب إذنك عند كل عملية حسّاسة: إنشاء ملف، تعديل ملف، تشغيل أمر. هذه لحظتك — الموافقة ليست شكلية.
  4. تفتح الصفحة في متصفحك وتجرّب. ما لم تجرّبه بنفسك لا تعتبره منجزاً، مهما قال لك إنه انتهى.

الأوامر التي تحتاجها فعلاً

الأدوات فيها عشرات الخيارات، لكن ما ستستعمله يومياً لا يتجاوز هذه:

نافذة طرفية تعرض أهم أوامر Claude Code وCodex: بدء جلسة، ومتابعة آخر جلسة، واستعراض الجلسات السابقة، والمراجعة، وفحص التنصيب
هذه كل الأوامر التي تحتاجها في الأسابيع الأولى — والباقي تتعلّمه عند الحاجة إليه

أهمّها --continue وresume: الجلسة تحتفظ بذاكرتها، فتستطيع أن تغلق حاسبتك وتعود غداً وتكمل من حيث توقّفت — والوكيل يتذكّر المشروع كله.

أربع قواعد تغنيك عن تعلّم البرمجة

القاعدةالتطبيق
اطلب مهمة واحدةشاشة واحدة أو ميزة واحدة في كل طلب — لا «ابنِ لي النظام»
جرّب بعد كل خطوةافتح الصفحة واضغط الأزرار. خمس دقائق تجربة توفّر ساعة تصحيح
صف العطل لا الحل«أضغط حفظ فتختفي الفاتورة» أفضل بكثير من «غيّر الدالة الفلانية»
خذ نسخة قبل الطلبات الكبيرةنسخة من مجلد المشروع، أو git init مرة واحدة — فتكون تكلفة أي خطأ صفراً

وإن تعطّل شيء ولم تفهم السبب؟ انسخ رسالة الخطأ كما هي والصقها في الجلسة واكتب: «هذا ما ظهر لي، ما المشكلة وكيف نصلحها؟». الوكيل يقرأ الأخطاء أفضل ممّا يقرأها كثير من المبرمجين — ورسالة الخطأ هي نصف الحل.

الخطوة 1 اكتب قواعد المشروع قبل أي طلب

قبل أن تطلب أي شيء، أنشئ مجلداً للمشروع وضع فيه ملف القواعد الذي يقرؤه الوكيل تلقائياً في كل جلسة — CLAUDE.md لـClaude Code، أو AGENTS.md لـCodex:

mkdir ~/pos && cd ~/pos
nano AGENTS.md

واكتب فيه القواعد الثابتة التي لا تريد تكرارها في كل طلب:

# قواعد مشروع نظام المبيعات

- الواجهة عربية بالكامل ومن اليمين إلى اليسار.
- العملة دينار عراقي بلا كسور، وتُكتب بفاصلة الآلاف.
- التاريخ ميلادي.
- استعمل Node.js وقاعدة بيانات SQLite في ملف واحد — لا خادم قاعدة بيانات منفصل.
- لا تضف أي مكتبة خارجية قبل أن تسألني.
- بعد كل تعديل، شغّل البرنامج وتأكّد أنه يعمل قبل أن تقول إنك انتهيت.

هذه الأسطر الستّة توفّر عليك عشرات التصحيحات لاحقاً. السطر الأخير تحديداً هو الذي يحوّل الوكيل من «كاتب كود» إلى «من يسلّمك شيئاً يعمل».

لماذا SQLite وليس قاعدة بيانات كبيرة؟ لأن قاعدة البيانات كلها ملف واحد تنسخه كما تنسخ أي ملف. لمحل واحد أو محلّين هذا أبسط وأأمن وأسرع. وإن كبر مشروعك لاحقاً يستطيع الوكيل نقله إلى MySQL بطلب واحد.

الخطوة 2 الطلب الأول: المنتجات والمخزون

القاعدة التي شرحناها في الدليل الأساس: مهمة واحدة في كل طلب. لا تطلب «نظام مبيعات»، بل اطلب أول شاشة فيه:

أنشئ في هذا المجلد تطبيق ويب بـ Node.js يعمل على المنفذ 80.

الشاشة الأولى: «المنتجات والمخزون» — جدول يعرض لكل مادة:
الاسم، الباركود، سعر الشراء، سعر البيع، الربح للوحدة (محسوباً)، والكمية.

فوق الجدول نموذج لإضافة مادة جديدة بنفس هذه الحقول.
لوّن الكمية بالأحمر إذا كانت 25 أو أقل.

أدخل ثماني مواد تجريبية من سوق عراقي (رز، شاي، زيت، سكر...)
بأسعار واقعية بالدينار.

بعد أن تنتهي، شغّل الخادم وأخبرني بالعنوان الذي أفتحه.

لاحظ أن الطلب يحوي الأجزاء الخمسة: أين نحن، وما المطلوب، والقيود، ومعيار النجاح («شغّل الخادم»)، وصيغة الإخراج («أخبرني بالعنوان»). النتيجة:

شاشة المنتجات والمخزون تعرض جدول المواد بأسعار الشراء والبيع والربح والكميات مع نموذج إضافة مادة جديدة
شاشة المنتجات بعد الطلب الأول — الكميات المنخفضة ملوّنة بالأحمر تلقائياً، وعمود الربح محسوب من الفرق بين الشراء والبيع

افتح العنوان في متصفحك وجرّب: أضف مادة، وتأكّد أنها ظهرت. لا تنتقل إلى الطلب التالي قبل أن تجرّب بنفسك.

الخطوة 3 شاشة البيع

أضف شاشة ثانية اسمها «شاشة البيع».

فيها قائمة منسدلة بالمواد المتوفّرة (مع سعرها وكميّتها)،
وحقل للكمية، وزر «أضف إلى الفاتورة».

المواد المضافة تظهر في جدول أسفل الشاشة مع مجموع كل سطر،
وفي الأسفل المجموع الكلّي بخط كبير.

وتحت الجدول: حقل اسم الزبون (اختياري)،
واختيار «نقد» أو «آجل»، وزر «حفظ الفاتورة»، وزر «إلغاء».

لا تحفظ شيئاً في قاعدة البيانات بعد — هذه الشاشة فقط.
شاشة البيع وفيها قائمة اختيار المادة وحقل الكمية وجدول الفاتورة الحالية والمجموع الكلي
شاشة البيع بعد إضافة ثلاث مواد. لاحظ الجملة الأخيرة في الطلب: «لا تحفظ شيئاً بعد» — تمنع الوكيل من القفز خطوتين

الجملة الأخيرة في الطلب هي الأهم فيه. الوكيل متحمّس بطبعه، وإن لم تحدّه سيبني الحفظ والفواتير والتقارير دفعة واحدة — وعندها إن ظهر خطأ لن تعرف في أي طبقة هو.

الخطوة 4 حفظ الفاتورة وخصم المخزون

الآن نربط الشاشتين. وهنا يظهر أول شرط محاسبي حقيقي:

عند الضغط على «حفظ الفاتورة»:

1. احفظ الفاتورة برقم متسلسل، مع التاريخ والوقت واسم الزبون
   ونوع الدفع والمبلغ الكلّي.
2. احفظ أسطر الفاتورة (المادة والكمية والسعر).
3. اخصم الكميات المباعة من المخزون.
4. احسب ربح الفاتورة = (سعر البيع − سعر الشراء) × الكمية، واحفظه معها.

مهم: نفّذ الأربعة معاً — إن فشلت واحدة فلا تُحفظ أي منها،
حتى لا تنقص كمية بلا فاتورة.

بعد الحفظ، اعرض الفاتورة في صفحة مرتّبة للطباعة
فيها اسم المحل والرقم والتاريخ والأسطر والمجموع، وزر «طباعة».
صفحة الفاتورة بعد الحفظ تعرض اسم المحل ورقم الفاتورة والتاريخ وأسطر المواد والمجموع المطلوب وزر الطباعة
الفاتورة بعد الحفظ — جاهزة للطباعة مباشرة من المتصفح

الفقرة التي تبدأ بـ«مهم» هي أثمن ما في هذا المقال. ما طلبته هناك يسمّيه المبرمجون «معاملة» (transaction): إمّا أن تنجح الخطوات كلها أو لا تحدث أصلاً. بدونها، انقطاع كهرباء في لحظة الحفظ قد يخصم البضاعة من المخزون بلا فاتورة تقابلها — ويوم الجرد لن تفهم أين ذهبت. لست مضطرّاً لتعرف الاسم التقني؛ يكفي أن تصف الشرط بلغتك: «إن فشلت واحدة فلا تُحفظ أي منها».

الخطوة 5 الفواتير وتقرير اليوم

أضف شاشتين:

«الفواتير»: قائمة بآخر الفواتير — الرقم والتاريخ والزبون
ونوع الدفع والمبلغ، ورابط لعرض كل فاتورة.

«تقرير اليوم»: يختار فيه المستخدم تاريخاً، فيعرض أربعة أرقام:
إجمالي المبيعات، وصافي الربح، والمقبوض نقداً، والمتبقّي آجلاً.
وتحتها جدول بأكثر المواد مبيعاً في ذلك اليوم
(المادة، الكمية المباعة، قيمة المبيعات).
تقرير اليوم يعرض إجمالي المبيعات وصافي الربح والمقبوض نقدا والآجل وجدول أكثر المواد مبيعا
تقرير اليوم — الأرقام الأربعة في الأعلى هي التي يسألك عنها محاسبك، والجدول يخبرك بما تشتريه غداً
قائمة الفواتير المسجلة مع رقم كل فاتورة وتاريخها والزبون ونوع الدفع والمبلغ
قائمة الفواتير — ومنها تفتح أي فاتورة قديمة وتطبعها مرة أخرى

فصل «الآجل» عن «النقد» في التقرير ليس تفصيلاً جمالياً. هو الفرق بين «بعت بثلاثمئة ألف» و«قبضت مئتين وتسعين ألفاً» — والثاني هو ما في الصندوق فعلاً.

الخطوة 6 الدخول والصلاحيات

أضف تسجيل دخول للنظام.

مستخدمان: «مدير المحل» يرى كل شيء،
و«موظف الكاشير» يرى شاشة البيع والفواتير فقط
ولا يرى الأرباح ولا أسعار الشراء.

أي صفحة تُفتح بلا تسجيل دخول تحوّل إلى صفحة الدخول.
صفحة تسجيل الدخول إلى نظام المبيعات باسم المحل وحقلي اسم المستخدم وكلمة المرور
صفحة الدخول. إخفاء سعر الشراء عن الكاشير طلبٌ بسيط في الكتابة، ومهمّ جداً في الواقع

الخطوة 7 اجعله يعمل دائماً

حتى الآن البرنامج يعمل ما دامت جلستك مفتوحة. لجعله يبدأ مع السيرفر ويعيد تشغيل نفسه إن توقّف، اطلب:

اجعل البرنامج خدمة نظام تعمل تلقائياً عند إقلاع السيرفر،
وتعيد تشغيل نفسها إذا توقّفت.

سينشئ ملف خدمة systemd قريباً من هذا:

[Unit]
Description=POS
After=network.target

[Service]
Type=simple
User=maram
WorkingDirectory=/home/maram/pos
ExecStart=/usr/bin/node /home/maram/pos/server.js
Restart=always

[Install]
WantedBy=multi-user.target

وتتحقّق بأمر واحد أن الخدمة شغّالة:

systemctl is-active pos

النسخ الاحتياطي — لا تؤجّله

قاعدة بياناتك ملف واحد. انسخه يومياً بسطر واحد في المجدول:

0 23 * * * cp ~/pos/pos.db ~/backups/pos-$(date +\%F).db

وانسخ ملفات النسخ إلى جهازك أو إلى تخزين خارجي مرة في الأسبوع. البرنامج يمكن إعادة بنائه في ساعتين؛ بيانات سنة كاملة لا يمكن.

الدومين وشهادة الأمان

لتفتحه باسم بدل رقم، وجّه نطاقك إلى عنوان السيرفر ثم اطلب:

اربط النظام بالنطاق pos.example.com عبر Caddy،
واحصل على شهادة HTTPS مجانية تلقائياً.

ماذا تعلّمنا من هذه التجربة؟

الدرسلماذا يهمّ
شاشة واحدة في كل طلبالخطأ يظهر مباشرة وتعرف مصدره، بدل أن تبحث عنه في عشرين ملفاً
«لا تفعل كذا بعد»تمنع الوكيل من بناء طبقات لم تجرّب ما تحتها
وصف الشروط بلغتك«إن فشلت واحدة فلا تُحفظ أي منها» أنتجت كوداً محاسبياً سليماً بلا مصطلح واحد
جرّب بعد كل خطوةخمس دقائق تجربة توفّر ساعة تصحيح
القواعد في ملف لا في الطلباتالعملة والاتجاه والتاريخ تُكتب مرة واحدة

لماذا لا تكفي أصغر باقة؟

وكيل الذكاء الاصطناعي لا يكتب سطراً وينتظر. هو يقرأ عشرات الملفات، ويشغّل التنصيب، ويرفع الخادم، ويختبر — في اللحظة نفسها. باقة بنواة واحدة وغيغابايت واحد ستختنق قبل أن تُنهي الطلب الثالث.

وهناك اعتبار ثانٍ يخصّ البرنامج نفسه بعد أن يعمل: زمن الشبكة بين العراق وسيرفر خارجي يقع عادةً بين 70 و150 ملّي ثانية، بينما زمن توليد الصفحة داخل السيرفر يتراوح بين 150 ملّي ثانية وأكثر من ثانيتين حسب العتاد. يعني: المسافة تكلّفك عشرات الملّي ثانية، والعتاد الضعيف يكلّفك آلافاً. الكاشير الذي ينتظر ثانيتين بعد كل ضغطة سيكرهك — والسبب لن يكون المسافة.

لذلك اسأل قبل الشراء عن المعالج وعدد الأنوية والذاكرة ونوع التخزين، لا عن المدينة وحدها.

ماذا بعد؟

ما بنيناه هنا نواة صالحة للعمل فعلاً في محل صغير. وتوسيعها يجري بالمنطق نفسه — طلب واحد لكل إضافة: الموردون والمشتريات، وديون الزبائن وتسديدها، وقراءة الباركود بالماسح، وشاشة جرد، ونسخة تعمل على الهاتف.

وقد نُشر المقال التالي في السلسلة: نظام حسابات وفواتير لشركتك — وفيه العملاء والموردون وكشف الحساب والتقرير الذي يفصل الربح عن النقد. ويتبعه: نظام إدارة عيادة، ونظام مدرسة، ومتجر إلكتروني بالدفع عند الاستلام.

وإن أردت أن تبدأ الآن: اختر باقة VPS مناسبة، ثم ابدأ من دليل التنصيب والتفعيل — والباقي طلبات مكتوبة بالعربية.

Powered by WHMCompleteSolution