انتقل إلى المقال
Aniq-UI

E-Commerceشغّل المتجر محليًا

شغّل المتجر محليًا

ثبّت كل تطبيق وشغّله باستخدام Node.js و Yarn، بطرفية مستقلة لكل تطبيق.

لحزمة الحزمة الكاملة

قبل أن تبدأ: ثبّت Node.js 22 أو أحدث وشغّل corepack enable مرة واحدة. لا تحتاج إلى خادم قاعدة بيانات.

اطّلع على المتطلبات

افتح كل طرفية في المكان الذي تتوقعه الأوامر أدناه: داخل e-commerce-1 للحزمة الكاملة، أو بجوار مجلد التطبيق لحزمة التطبيق الواحد.

التطبيقالمجلدالعنوان
APIback-endlocalhost:8000محلي
المتجرstorefrontlocalhost:3030محلي
لوحة الإدارةadmin-dashboardlocalhost:3031محلي

شغّل واجهة API أولًا: تقرأ الواجهتان الأماميتان كل بياناتهما منها.

شغّل واجهة API

  1. ثبّت واضبط الإعداد

    يعمل .env.example كما هو للتطوير المحلي.

    الطرفية
    corepack enable
    cd back-end
    yarn install
    cp .env.example .env
    تواجه مشكلة؟
  2. أنشئ قاعدة البيانات

    ينشئ yarn seed الملف database.sqlite وجداوله والمتجر التجريبي. تشغيله مرة أخرى يضيف ما هو ناقص فقط.

    الطرفيةفي back-end
    yarn seed
  3. شغّل الخادم

    الطرفيةفي back-end
    yarn dev

    النتيجة المتوقعة: يجيب localhost:8000/api/healthمحلي بـ {"status":"ok"}.

    تواجه مشكلة؟

شغّل المتجر

في طرفية ثانية:

  1. ثبّت واضبط الإعداد

    يوجّه ملف .env المنسوخ المتجرَ إلى واجهة API على المنفذ 8000.

    الطرفية
    cd storefront
    yarn install
    cp .env.example .env
  2. شغّله

    الطرفيةفي storefront
    yarn dev

    النتيجة المتوقعة: يفتح localhost:3030محلي المتجر بالإنجليزية؛ والنسخة العربية على /ar.

    تواجه مشكلة؟

شغّل المتجر

واجهة API ليست جزءًا من هذه الحزمة. لا تنشئ ملف .env بعد: من دونه يعمل المتجر على متجره النموذجي المدمج.

  1. التثبيت

    الطرفية
    corepack enable
    cd storefront
    yarn install
    تواجه مشكلة؟
  2. شغّله

    الطرفيةفي storefront
    yarn dev

    النتيجة المتوقعة: يفتح localhost:3030محلي المتجر مع تنبيه «بيانات تجريبية». أي بريد إلكتروني وكلمة مرور يسجّلان دخولك كمتسوّق نموذجي، وما تغيّره يُحفظ في المتصفح.

عندما تكون واجهة API الخاصة بالقالب قيد التشغيل، أنشئ .env من .env.example واضبط NEXT_PUBLIC_API_BASE_URL على عنوانها. هذا ما يوقف المتجر النموذجي.

الإعدادات

شغّل لوحة الإدارة

في طرفية ثالثة:

  1. ثبّت واضبط الإعداد

    الطرفية
    cd admin-dashboard
    yarn install
    cp .env.example .env
  2. شغّلها وسجّل الدخول

    الطرفيةفي admin-dashboard
    yarn dev

    النتيجة المتوقعة: يفتح localhost:3031محلي نموذج تسجيل الدخول، معبّأً مسبقًا ببيانات المدير العام: admin@example.com مع كلمة المرور Admin@123.

    تواجه مشكلة؟

شغّل لوحة الإدارة

واجهة API ليست جزءًا من هذه الحزمة. لا تنشئ ملف .env بعد: من دونه تعمل لوحة الإدارة على متجرها النموذجي المدمج.

  1. التثبيت

    الطرفية
    corepack enable
    cd admin-dashboard
    yarn install
    تواجه مشكلة؟
  2. شغّلها وسجّل الدخول

    الطرفيةفي admin-dashboard
    yarn dev

    النتيجة المتوقعة: يفتح localhost:3031محلي نموذج تسجيل الدخول، معبّأً مسبقًا بـ admin@example.com وAdmin@123. على المتجر النموذجي، يسجّل دخولك كمدير عام أي بريد إلكتروني صالح مع كلمة مرور من 6 أحرف على الأقل، وتُحفظ تغييراتك في المتصفح.

يبقى المساعد الذكي واستوديو الذكاء الاصطناعي غير متاحين على المتجر النموذجي، لأن كليهما يحتاج إلى مفاتيح واجهة API. كل ما عدا ذلك يعمل.

الإعدادات

بناء الإنتاج

المجلدات نفسها، تُبنى مرة واحدة ثم تُشغَّل. اضبط أولًا back-end/.env للإنتاج: مع NODE_ENV=production لا تنشئ واجهة API أي جداول عند بدء التشغيل، وترفض البدء ما دام JWT_SECRET فارغًا أو ما زال بقيمة المثال، أو ما دام CORS_ORIGIN فارغًا.

back-end/.env
NODE_ENV=production
JWT_SECRET=<a long random string>
CORS_ORIGIN=http://localhost:3030,http://localhost:3031
FRONTEND_URL=http://localhost:3031

ولّد السر بالأمر node -e "console.log(require('crypto').randomBytes(48).toString('hex'))". ثم ابنِ واجهة API، وأنشئ جداولها مرة واحدة، وشغّلها. ينشئ yarn db:sync:prod جداول فارغة؛ أما yarn seed:prod بدلًا منه فيضيف المتجر التجريبي وحساباته.

الطرفيةفي back-end
yarn build
yarn db:sync:prod
yarn start:prod

لكل واجهة أمامية، المتجر على 3030 ولوحة الإدارة على 3031 (الأمران نفسهما داخل admin-dashboard):

الطرفيةفي storefront
yarn build
yarn start

تضمّن الواجهتان الأماميتان ملف .env الخاص بهما أثناء البناء، لذا شغّل yarn build مجددًا بعد تغييره. قبل النشر على أي مكان عام، اقرأ قائمة التحقق الخاصة بالإنتاج.

ابدأ من جديد ببيانات تجريبية جديدة

أوقف واجهة API، ثم احذف ملف قاعدة البيانات واملأه بالبيانات التجريبية من جديد. هذا يحذف كل ما أنشأته.

الطرفيةفي back-end
rm -f database.sqlite* && yarn seed

في PowerShell:

الطرفيةفي back-end
Remove-Item database.sqlite*; yarn seed

التالي

هل كان هذا مفيدًا؟

تمت مراجعته على إصدار 2026-10-07

توقفت عند خطوة؟

ابحث عن الحل قبل أن تبدأ من جديد.

حل المشكلات

تفضيلات ملفات تعريف الارتباط

نستخدم ملفات تعريف الارتباط لتعزيز تجربة التصفح الخاصة بك وتحليل حركة المرور على الموقع وتخصيص المحتوى. بالنقر على "قبول الكل"، فإنك توافق على استخدامنا لملفات تعريف الارتباط للتحليلات والإعلانات المخصصة.