انتقل إلى المحتوى
TAQNIX
وحدات Odooإضافات ووردبريسقوالب ووردبريسقوالب Shopifyقوالب التطبيقاتالسكربتات والأدواتالمدونةبِع على TAQNIX

توثيق تطبيق البائع لووكومرس متعدد البائعين

دليل خطوة بخطوة للجميع بلا برمجة: ثبّت الإضافة، وافهم من يستطيع الدخول، وأعدّ الإشعارات الفورية، واستخدم التطبيق كبائع أو كمدير للمتجر، وابنِ تطبيق Android الخاص بك عبر الإنترنت.

يشرح الإصدار 1.1.0حُدّث في 22 أكتوبر 2026

ابدأ من هنا

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

ما الذي اشتريته: ثلاثة أجزاء تعمل معًا

الجزءما هومن يحتاج إليه
1. الإضافة
multivendor-app-for-woocommerce-plugin.zip
تُثبَّت على متجر ووردبريس الخاص بك. تمدّ التطبيق ببياناته، وتتحقق من كل عملية تسجيل دخول، وترسل الإشعارات والرسائل النصية، وتتيح لك بناء التطبيق.الجميع
2. أداة App Builder عبر الإنترنت
(تبويب داخل الإضافة)
تنشئ تطبيق Android خاصًا بك بهويتك (اسمك وأيقونتك وألوانك) على خوادمنا. تملأ نموذجًا قصيرًا وتضغط زرًّا واحدًا.معظم المستخدمين
3. الشيفرة المصدرية للتطبيق
flutter-app-source.zip
الشيفرة الكاملة للتطبيق (Flutter، لأجهزة Android وiPhone)، للمطوّرين الذين يريدون تعديلها أو بناءها بأنفسهم.المطوّرون
نصيحة: يستطيع مدير المتجر استخدام التطبيق أيضًا. سجّل الدخول بحساب المدير المعتاد (مثل admin) وسترى كامل المتجر. أسرع طريقة لتجربة كل شيء هي البدء بحساب المدير كما في هذا الدليل.

من يستطيع تسجيل الدخول وماذا يرى

بكلمات بسيطة: يسأل التطبيق ووردبريس عن هويتك، وما تراه يعتمد على دورك.
الدورهل يستطيع الدخول؟ما يراه
Administratorنعمجميع طلبات المتجر وجميع منتجاته. تظهر شارة صغيرة «Store admin» في لوحة التحكم.
Shop managerنعممثل المدير.
البائع / vendor (دور Dokan seller، ودور WCFM wcfm_vendor، ودور MultiVendorX dc_vendor أو vendor)نعممنتجاته فقط والطلبات التي تحتوي على منتجاته.
العميل، والمشترك، وأي مستخدم آخرلا«You do not have vendor access.»

تكتشف الإضافة إضافة السوق لديك تلقائيًا:

إضافة السوقما يستخدمه التطبيق
Dokanطلبات Dokan وأرباحه وملف المتجر
WCFM Marketplaceطلبات WCFM وعمولاته وملف المتجر وسياساته
MultiVendorXطلبات MultiVendorX وأرباحه وملف البائع
لا شيء مثبّتتسجيل دخول المدير ومدير المتجر فقط
مهم: لا يرى البائعون الطلبات إلا إذا كانت إحدى إضافات السوق الثلاث مفعّلة، لأن الإضافة تحتاج إليها لمعرفة أي طلب يخص أي بائع. أما المديرون فلا يحتاجون إلى واحدة منها.

ما تحتاج إليه قبل البدء

ما تحتاج إليهالسبب
موقع ووردبريس مع WooCommerce 8.0 أو أحدث وPHP 7.4+تقرأ الإضافة طلبات WooCommerce ومنتجاته وتحدّثها.
للبائعين: Dokan أو WCFM Marketplace أو MultiVendorXتُعلم الإضافة بالمنتجات والطلبات التي تخص كل بائع.
HTTPS (قفل في المتصفح) والروابط الدائمة «الجميلة»يتصل الهاتف بمتجرك عبر https://yourstore.com/wp-json/.
مشروع Firebase مجاني (بحساب Google)مطلوب للإشعارات الفورية. يوضح الفصل 7 كل نقرة.
اختياري: حساب لدى مزوّد رسائل نصية (Twilio أو Unifonic أو 2Factor أو OTPless)رسائل نصية للطلبات الجديدة.
رمز الشراء الخاص بكتحتاج إليه أداة App Builder عبر الإنترنت (الفصل 9).

تثبيت الإضافة

  1. فُكّ ضغط الحزمة التي نزّلتها. بداخلها multivendor-app-for-woocommerce-plugin.zip وflutter-app-source.zip. لا تفكّ ضغط هذين الملفين.
  2. في ووردبريس افتح Plugins → Add New → Upload Plugin، واختر multivendor-app-for-woocommerce-plugin.zip، ثم انقر Install Now ثم Activate.
  3. افتح Settings → Seller App. إذا ظهرت لك الصفحة ذات التبويبات الستة (App Config وBranding وSMS & WhatsApp وPush Notifications وTest Notifications وApp Builder) فالإضافة جاهزة.
  4. تحقق من Settings → Permalinks: أي خيار عدا «Plain» مناسب. انقر Save Changes مرة واحدة إذا لم يستطع التطبيق الوصول إلى متجرك.
مهم: إذا كنت تستخدم الإصدار 1.0.0 القديم من «MultiVendor Seller App for WooCommerce» أو إضافة «Taqnix App Builder» المنفصلة، فاقرأ الفصل 14 أولًا: هذه الإضافة تحلّ محلهما معًا.

الإعدادات تبويبًا تبويبًا

بكلمات بسيطة: افتح Settings → Seller App. غيّر ما تحتاج إليه وانقر Save Settings. يقرأ التطبيق هذه القواعد عند تشغيله.

App Config

تبويب App Config.
تبويب App Config.
الإعدادوظيفته
Maintenance Mode + Messageيقفل التطبيق بشاشة «Back soon» تعرض رسالتك. استخدمه أثناء عملك على المتجر.
New Products by SellersPublish immediately (النشر الفوري)، أو Pending review (بانتظار المراجعة) لتوافق أنت على كل منتج يضيفه البائع. مديرو المتجر ينشرون دائمًا فورًا.
App Update Linkالوجهة التي يفتحها زر «Update now»: صفحة تطبيقك في Google Play أو App Store.
Force App Update (Min Version)أدنى إصدار مسموح به للتطبيق، مثل 1.2.0. تعرض التطبيقات الأقدم شاشة «Update required» ولا يمكن استخدامها.
Privacy Policy URLمطلوب من Google Play وApp Store.

Branding

تبويب Branding.
تبويب Branding.

اللون الأساسي والبريد الإلكتروني للدعم ورقم WhatsApp للدعم. يستطيع التطبيق قراءتها من /app-config.

SMS & WhatsApp

تبويب SMS & WhatsApp.
تبويب SMS & WhatsApp.

فعّل Enable Automated Alerts، واختر المزوّد، والصق المفتاح (والسر) واسم المرسل، وعدّل نص الرسالة. يمكنك استخدام {order_id} و{total} و{store_name} و{customer_name} و{payment_method} و{order_date}. يتلقى البائع هذا النص عند تقديم طلب يحتوي على منتجاته. يؤخذ رقم هاتف البائع من هاتف الفوترة في ملفه الشخصي على ووردبريس.

Push Notifications

تبويب Push Notifications: يوضع هنا حساب خدمة Firebase.
تبويب Push Notifications: يوضع هنا حساب خدمة Firebase.

Test Notifications

إرسال إشعار تجريبي أو رسالة نصية تجريبية إلى أي مستخدم.
إرسال إشعار تجريبي أو رسالة نصية تجريبية إلى أي مستخدم.

ابحث عن مستخدم، واكتب رسالة، ثم انقر Send Test Push أو Send Test SMS. يظهر في الصفحة الرد القادم من Firebase أو من مزوّد الرسائل النصية، ما يسهّل اكتشاف المشكلات. يجب أن يكون المستخدم قد سجّل الدخول إلى التطبيق مرة واحدة ليتلقى الإشعار.

نصيحة: الأسرار مثل سر الرسائل النصية لا تُعرض مرة أخرى بعد حفظها. اترك الحقل فارغًا للإبقاء على السر المحفوظ.

إعداد الإشعارات الفورية (Firebase)

بكلمات بسيطة: الإشعارات الفورية هي «الرنّة» التي تصل إلى هاتف البائع عند وصول طلب جديد. توفّرها Google مجانًا عبر Firebase. تُعدّها مرة واحدة فقط، وتحتاج إلى ملفين: واحد لـالتطبيق وآخر لـمتجرك.

أ. أنشئ مشروع Firebase

  1. انتقل إلى console.firebase.google.com وسجّل الدخول بحساب Google.
  2. انقر Add project، واكتب اسمًا (مثل «Acme Sellers») وأكمل المعالج. يمكنك إيقاف Google Analytics.

ب. ملف التطبيق: google-services.json (Android)

  1. في مشروعك انقر أيقونة Android («Add app»).
  2. Android package name: اكتب الاسم الفريد لتطبيقك، مثل com.acme.sellers. دوّنه: استخدم الاسم نفسه تمامًا في App Builder (الفصل 9).
  3. انقر Register app ثم Download google-services.json. احتفظ به للفصل 9 أو 10. تجاوز بقية شاشات Firebase.

ج. ملف متجرك: مفتاح حساب الخدمة

  1. في Firebase انقر أيقونة الترس ← Project settings ← تبويب Service accounts.
  2. انقر Generate new private key وأكّد. سيُنزَّل ملف بامتداد .json.
  3. افتحه في محرر نصوص، وحدّد كل محتواه وانسخه.
  4. في ووردبريس افتح Settings → Seller App → Push Notifications، والصق المحتوى في الحقل وانقر Save Settings.
مهم: ملف حساب الخدمة بمثابة كلمة مرور لمشروع Firebase الخاص بك. لا ترسله بالبريد الإلكتروني ولا تضعه في مكان عام.

د. لأجهزة iPhone فقط

أضف أيضًا تطبيق iOS في Firebase (باستخدام bundle ID الخاص بك)، ونزّل GoogleService-Info.plist، وارفع مفتاح APNs من Apple ضمن Project settings → Cloud Messaging. التفاصيل في الفصل 10.

جرّبه

سجّل الدخول إلى التطبيق على هاتف، ثم افتح Test Notifications واختر ذلك المستخدم وانقر Send Test Push. يجب أن يرنّ الهاتف خلال ثوانٍ.

استخدام التطبيق

بكلمات بسيطة: للتطبيق أربعة تبويبات أسفل الشاشة: Dashboard وOrders وInventory (منتجاتك) وProfile.

تسجيل الدخول

  1. افتح التطبيق واكتب اسم المستخدم وكلمة المرور الخاصين بحساب ووردبريس. يستخدم مديرو المتجر حساب المدير.
  2. اسمح بـالإشعارات عندما يطلب الهاتف ذلك.
  3. تبقى مسجّل الدخول على هذا الهاتف حتى تنقر Sign Out (أو تنقضي 90 يومًا، أو يُزال الدور). تسجيل الدخول على هاتف ثانٍ لا يُخرجك من الأول.
شاشة تسجيل الدخول.
شاشة تسجيل الدخول.

لوحة التحكم

لوحة التحكم: الأرباح والطلبات والمنتجات وتنبيهات المخزون.
لوحة التحكم: الأرباح والطلبات والمنتجات وتنبيهات المخزون.

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

الطلبات

قائمة الطلباتتفاصيل الطلب
الطلبات: ابحث، وصفِّ حسب الحالة، وافتح طلبًا وغيّر حالته.
  • ابحث برقم الطلب (ويبحث المديرون أيضًا باسم العميل أو بريده الإلكتروني) وصفِّ حسب الحالة.
  • افتح طلبًا لترى العميل وطريقة الدفع والمنتجات مع صورها والإجمالي.
  • غيّر الحالة من الحقل Order Status في الأعلى (وهو قائمة منسدلة)، مثلًا من Processing إلى Completed. يستطيع البائعون استخدام Processing وOn hold وCompleted وCancelled. أما الحالات الأخرى مثل Refunded فلمديري المتجر فقط.

Inventory (المنتجات)

قائمة المنتجاتتفاصيل المنتجتعديل منتج
Inventory: القائمة وتفاصيل المنتج والتعديل.
  • ابحث، وصفِّ حسب الحالة، واستخدم Out of stock من لوحة التحكم.
  • المس الزر الدائري + في أعلى اليمين لإضافة منتج: الاسم والأسعار وسعر التخفيض والوصف والتصنيفات وكمية المخزون أو حالته وصورة رئيسية وصور المعرض من الكاميرا أو من معرض الصور.
  • افتح منتجًا واستخدم القلم لتعديله أو سلة المهملات لحذفه. تذهب المنتجات المحذوفة إلى سلة المهملات.
  • يرى البائعون ويعدّلون منتجاتهم الخاصة فقط؛ ويرى مديرو المتجر جميع المنتجات.

الملف الشخصي وإعدادات المتجر

الملف الشخصيإدارة المتجر
الملف الشخصي: بيانات التواصل والعنوان وسياسات المتجر وساعات العمل.

عدّل اسم المتجر والهاتف والعنوان والشعار والبانر، وساعات العمل، وسياسات الشحن والاسترجاع والإلغاء.

تنبيهات الطلبات للبائعين والمديرين

عندما يقدّم عميل طلبًا، تحدّد الإضافة البائعين الذين يملكون منتجات فيه وترسل لكل منهم إشعارًا فوريًا («New Order Received! Order #123 total is …») ومعه رسالة نصية إذا كانت مفعّلة. يُبلَّغ مديرو المتجر بكل طلب. ويُعلَن عن كل طلب مرة واحدة فقط.

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

نصيحة: تقسّم Dokan والإضافات المشابهة طلب العميل الواحد إلى طلب لكل بائع. وكل بائع يُنبَّه إلى الجزء الخاص به.

بناء تطبيقك الخاص عبر الإنترنت (بلا برمجة)

بكلمات بسيطة: يُنشئ تبويب App Builder ملف Android (APK) باسم تطبيق خاص بك وأيقونتك وألوانك، ويتصل بـمتجرك. تملأ نموذجًا، وبعد دقائق يصلك بريد إلكتروني برابط التنزيل. لا تحتاج إلى تثبيت أي شيء.
Settings → Seller App → App Builder.
Settings → Seller App → App Builder.

قبل أن تبدأ

  • رمز الشراء الخاص بك.
  • أيقونة تطبيقك (PNG مربعة 1024×1024)، وشعار، وصورة شاشة البداية (splash).
  • ملف google-services.json من الفصل 6، المُنشأ لاسم الحزمة الذي ستكتبه أدناه.

خطوة بخطوة

  1. افتح Settings → Seller App → App Builder.
  2. Step 1. تحقق من عنوان موقعك (https ودون شرطة مائلة في النهاية)، والصق رمز الشراء، وانقر Connect & load my app. ستظهر علامة «Connected» الخضراء. يبقى رمزك على خادمك ولا يُعرض مرة أخرى.
  3. Step 2. اكتب App name (يظهر تحت الأيقونة)، وPackage name (وهو الاسم نفسه الذي أعطيته لـ Firebase، مثل com.acme.sellers)، وبريدك الإلكتروني. يُرسل رابط التنزيل إليه.
  4. Step 3. اختر صور الأيقونة والشعار وشاشة البداية (تُرفع فور اختيارها)، واختر لون شاشة البداية، وارفع google-services.json.
  5. Step 4. اختر APK (للتثبيت مباشرة على الهاتف) أو App Bundle (لـ Google Play). انقر Save details ثم Start Android build.
  6. انتظر البريد الإلكتروني (عادةً بضع دقائق؛ فعمليات البناء تُوضع في طابور). افتح الرابط على الهاتف لتنزيل ملف APK وتثبيته.
مهم: يجب أن يكون اسم الحزمة في App Builder وفي Firebase متطابقًا. إذا اختلفا يتوقف البناء برسالة توضح الاسمين اللذين وجدهما.

من المفيد أن تعرف

  • تبني الأداة تطبيقات Android فقط. لأجهزة iPhone استخدم الشيفرة المصدرية (الفصل 10).
  • كل رمز شراء يبني تطبيقًا واحدًا. لتغيير الاسم أو الأيقونة أو الشاشات لاحقًا، احفظ النموذج مرة أخرى وانقر Build من جديد.
  • ما يُرسل إلى خادم البناء: عنوان موقعك ورمز الشراء واسم التطبيق واسم الحزمة وبريدك الإلكتروني وهاتفك ولون شاشة البداية وصورك الثلاث وملف Firebase. لا حاجة إلى كلمات مرور المتجر ولا إلى مفاتيح WooCommerce.
  • لا يستطيع استخدام هذا التبويب إلا المديرون؛ وكل طلب محمي برمز أمان.

للمطوّرين: بناء التطبيق من الشيفرة المصدرية

بكلمات بسيطة: تجاوز هذا الفصل إذا كنت تستخدم أداة البناء عبر الإنترنت. الشيفرة المصدرية الكاملة للتطبيق في flutter-app-source.zip: Flutter (Dart) وRiverpod وgo_router وDio وFirebase Messaging وSecure Storage وImage Picker.

المتطلبات

  • Flutter 3.41 أو أحدث (flutter doctor بلا مشكلات)، وAndroid Studio لنظام Android، وXcode وCocoaPods لأجهزة iPhone.

1. افتح المشروع ووجّهه إلى متجرك

unzip flutter-app-source.zip -d seller_app && cd seller_app
flutter pub get

# run on a connected phone or emulator
flutter run --dart-define=API_DOMAIN=https://yourmarketplace.com

أو غيّر القيمة الافتراضية بصورة دائمة في lib/core/constants/app_config.dart:

class AppConfig {
  static const String siteUrl = String.fromEnvironment(
    'API_DOMAIN',
    defaultValue: 'https://yourmarketplace.com',   // <- your store, no slash at the end
  );
  static const String apiBaseUrl = '$siteUrl/wp-json/multivendor-seller/v1';
}

2. أضف ملفات Firebase

  • Android: android/app/google-services.json (تُفعَّل إضافة Gradle تلقائيًا عند وجود الملف).
  • iPhone: ios/Runner/GoogleService-Info.plist؛ افتح ios/Runner.xcworkspace في Xcode واسحبه إلى مجموعة Runner إذا ظهر باللون الأحمر.

3. الاسم والحزمة والأيقونات

# unique app id (must match Firebase)
dart run change_app_package_name:main com.acme.sellers

# replace assets/images/icon.png (1024x1024) and assets/images/splash.png, then:
dart run flutter_launcher_icons
dart run flutter_native_splash:create

اسم التطبيق الظاهر على الهاتف موجود في android/app/src/main/AndroidManifest.xml (android:label) وفي ios/Runner/Info.plist (CFBundleDisplayName).

4. التوقيع والبناء (Android)

# create a signing key once and keep it safe
keytool -genkey -v -keystore ~/acme-sellers.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload

# android/key.properties
storeFile=/Users/you/acme-sellers.jks
storePassword=...
keyAlias=upload
keyPassword=...

في android/app/build.gradle.kts اقرأ هذه القيم داخل الكتلة signingConfigs { create("release") { … } } واستخدمها في buildTypes.release بدل مفتاح التصحيح (يوجد في الملف تعليق يبيّن المكان). ثم:

flutter build apk --release --dart-define=API_DOMAIN=https://yourmarketplace.com          # APK to test
flutter build appbundle --release --dart-define=API_DOMAIN=https://yourmarketplace.com     # AAB for Google Play

5. iPhone

cd ios && pod install --repo-update && cd ..
flutter build ipa --release --dart-define=API_DOMAIN=https://yourmarketplace.com

في Xcode اختر Team الخاص بك، وعيّن Bundle Identifier فريدًا (هو نفسه المستخدم في Firebase) وأبقِ إمكانية Push Notifications. ارفع مفتاح APNs في Firebase.

أين توجد الأشياء

المجلدما بداخله
lib/core/api/api_client.dartعميل الشبكة: يضيف رمز الدخول إلى كل طلب ويعيد إلى شاشة الدخول عندما ينهي الخادم تسجيل الدخول.
lib/features/authتسجيل الدخول، وشاشة البداية (فحص وضع الصيانة والتحديث الإجباري)، والجلسة.
lib/features/dashboardلوحة التحكم والتنقل السفلي.
lib/features/orders، productsقوائم الطلبات والمنتجات وتفاصيلها وإضافتها وتعديلها.
lib/features/profileملف المتجر والسياسات وساعات العمل.
lib/features/notificationsقائمة التنبيهات داخل التطبيق.
lib/core/services/fcm_service.dartيسجّل الهاتف لتلقي الرسائل الفورية.
default_files/قوالب تستخدمها أداة البناء عبر الإنترنت. تجاهلها.

للمطوّرين: واجهة REST API

بكلمات بسيطة: يتواصل التطبيق والإضافة عبر واجهة REST API صغيرة. يمكنك استخدامها لتطبيقك الخاص أو لعمليات التكامل.

العنوان الأساسي: https://yourstore.com/wp-json/multivendor-seller/v1. كل شيء عدا /login و/app-config يحتاج إلى الرمز الذي يعيده تسجيل الدخول، ويُرسل بالصيغة Authorization: Bearer … (أو في الترويسة X-Seller-Token). مدة صلاحية الرموز 90 يومًا؛ ولكل هاتف رمزه الخاص (حتى 5 رموز لكل مستخدم).

الطريقة والمساروظيفته
POST /loginusername وpassword ← token وuser_id وdisplay_name وis_admin. يعيد 429 بعد 5 كلمات مرور خاطئة.
POST /logoutينهي هذا الرمز؛ ويُنسى أيضًا fcm_token الاختياري.
GET /app-configعام: وضع الصيانة ورسالته، وأدنى إصدار، ورابط التحديث، والعملة، واللون، وروابط الدعم والروابط القانونية.
GET /dashboard-statsالأرباح والطلبات وأعداد المنتجات والمنتجات التي نفد مخزونها.
GET /seller-orderspage وper_page (الحد الأقصى 50) وstatus وsearch.
PUT /seller-orders/{id}status: processing وon-hold وcompleted وcancelled (للمديرين: أي حالة حقيقية).
GET /seller-productspage وper_page وstatus وsearch وstock_status.
POST /seller-products، PUT /seller-products/{id}title وregular_price وsale_price وdescription وshort_description وmanage_stock وstock_quantity وstock_status وcategories وimage_id وgallery_image_ids.
DELETE /seller-products/{id}إلى سلة المهملات (أضف force=1 للحذف النهائي).
GET /store-categoriesتصنيفات المنتجات.
POST /upload-mediaالحقل file بصيغة multipart: JPG أو PNG أو GIF أو WebP ← attachment_id وurl.
GET/PUT /seller-profileاسم المتجر والهاتف والعنوان والشعار/البانر والسياسات وساعات العمل.
GET/PUT /seller-settingsالسياسات ووضع الإجازة (لتطبيقاتك الخاصة؛ فالتطبيق المرفق يعدّل السياسات من الملف الشخصي).
GET /seller-notificationsقائمة التنبيهات داخل التطبيق.
POST /seller-notifications/tokenالرمز fcm_token الخاص بهذا الهاتف.

جرّبها

# log in (admin works too)
curl -s -X POST https://yourstore.com/wp-json/multivendor-seller/v1/login \
  -H 'Content-Type: application/json' \
  -d '{"username":"admin","password":"your-password"}'
# -> {"success":true,"token":"MXx8…","user_id":1,"is_admin":true,...}

# list orders
curl -s 'https://yourstore.com/wp-json/multivendor-seller/v1/seller-orders?status=processing' \
  -H 'Authorization: Bearer MXx8…'

# complete an order
curl -s -X PUT https://yourstore.com/wp-json/multivendor-seller/v1/seller-orders/123 \
  -H 'Authorization: Bearer MXx8…' -H 'Content-Type: application/json' -d '{"status":"completed"}'

السماح لدور آخر باستخدام التطبيق

// functions.php or a small plugin
add_filter( 'mvs_app_roles', function ( $roles ) {
    $roles[] = 'my_custom_vendor_role';
    return $roles;
} );

الأمان والخصوصية

  • كل طلب يحتاج إلى رمز دخول (عدا تسجيل الدخول والإعدادات العامة للتطبيق). لا يستطيع البائع قراءة أو تعديل إلا منتجاته وطلباته وملفه وصوره؛ فالخادم هو من يقرّر، لا التطبيق.
  • الرموز عشوائية، وتُحفظ على هيئة تجزئة أحادية الاتجاه، ومدتها 90 يومًا، وهي خاصة بكل هاتف، وتتوقف عن العمل فورًا عند تسجيل خروج المستخدم أو حذفه أو فقدانه الدور.
  • محاولات تسجيل الدخول محدودة (5 كلمات مرور خاطئة، ثم 15 دقيقة انتظار).
  • يجب أن تكون الملفات المرفوعة صور JPG أو PNG أو GIF أو WebP حقيقية؛ ويجري التحقق من الأسعار والحالات وقيم المخزون.
  • لا يستطيع البائعون استرجاع الطلبات أو نقلها إلى سلة المهملات من التطبيق.
  • يحتاج تبويب App Builder وكل إجراء إداري إلى مدير ورمز أمان؛ ولا شيء متاح للزوار.
  • تبقى أسرار الرسائل النصية وFirebase على خادمك. ولا يُعاد عرض سر الرسائل النصية في صفحة الإعدادات.
  • أخبر بائعيك في سياسة الخصوصية بما يتعامل معه التطبيق (الطلبات وأسماء العملاء وأرقام هواتفهم وصور المنتجات).

حل المشكلات

المشكلةما العمل
«Cannot reach the server»تحقق من عنوان المتجر في التطبيق (API_DOMAIN) ومن HTTPS، وافتح https://yourstore.com/wp-json/multivendor-seller/v1/app-config في المتصفح: يجب أن ترى نصًا يبدأ بـ {"success":true. وإلا فأعد حفظ Settings → Permalinks.
«You do not have vendor access»يجب أن يكون دور المستخدم مديرًا أو مدير متجر أو أحد أدوار البائعين في إضافة السوق لديك (وليس عميلًا أو مشتركًا).
«Too many failed attempts»انتظر 15 دقيقة.
يعرض التطبيق فجأة شاشة تسجيل الدخولانتهى تسجيل الدخول (خروج من مكان آخر، أو تغيّر الدور، أو مرور 90 يومًا). سجّل الدخول من جديد.
بائع لا يرى أي طلباتيجب أن تكون Dokan أو WCFM أو MultiVendorX مفعّلة، وأن يحتوي الطلب على منتجات ذلك البائع. جرّب بيانات الدخول نفسها كمدير للمقارنة.
تعرض لوحة تحكم المدير 0 طلباتالطلبات الموجودة في سلة المهملات أو الملغاة أو المستردة أو الفاشلة لا تُحتسب. افتح WooCommerce → Orders للمقارنة.
لا يصل إشعار فورياستخدم Test Notifications واقرأ الرد. تحقق من ملف حساب الخدمة (الفصل 6 الفقرة ج)، ومن أن المستخدم سجّل الدخول على ذلك الهاتف، ومن أن الإشعارات مسموح بها على الهاتف.
لا تُرفع صور المنتجاتالمقبول فقط JPG وPNG وGIF وWebP. تحقق من حد حجم الرفع في خادمك.
شاشة «Update required» أو «Back soon»Settings → Seller App → App Config: اخفض الحد الأدنى للإصدار أو أوقف Maintenance Mode.
تعرض App Builder الرسالة «Not allowed»انتهت جلسة المدير: أعد تحميل الصفحة.
تعرض App Builder أن اسم الحزمة غير مطابقاجعل اسم الحزمة في App Builder مطابقًا للاسم في Firebase، أو نزّل ملف google-services.json جديدًا.
إضافات التخزين المؤقت (LiteSpeed وWP Rocket وCloudflare)استثنِ /wp-json/multivendor-seller/ من التخزين المؤقت.

التحديث والانتقال من الإضافات الأقدم

التحديث

ارفع ملف zip الجديد للإضافة باستخدام Replace current with uploaded؛ وتبقى الإعدادات. ابنِ إصدارًا جديدًا من التطبيق (الفصل 9 أو 10) وارفع Force App Update عندما تريد أن يحدّث الجميع.

إذا كنت تستخدم «MultiVendor Seller App for WooCommerce» 1.0.0 و«Taqnix App Builder»

  • هذه الإضافة تحلّ محلهما معًا. عطّل «Taqnix App Builder» واحذفها؛ فأداة البناء فيها أصبحت الآن تبويب App Builder هنا (أدخل رمز الشراء مرة واحدة).
  • كان في ملف الإضافة القديمة فاصلة عليا زائدة في اسمها. احذف مجلد الإضافة القديمة بالكامل، ثم ارفع هذه.
  • على الجميع تسجيل الدخول مرة أخرى. تُخزَّن رموز الدخول الآن بطريقة مختلفة (لكل هاتف، مع مدة انتهاء)، لذلك تنتهي الجلسات القديمة.
  • تبقى الإعدادات. وتبدأ الخيارات الجديدة (رسالة الصيانة، ومراجعة المنتجات الجديدة، ورابط التحديث) بقيم افتراضية آمنة.

الإزالة

عطّل الإضافة واحذفها. يبقى البائعون والمنتجات والطلبات. أما إعدادات الإضافة فتُزال.

الدعم

المساعدة في التثبيت وإصلاح الأخطاء مشمولان لمدة 6 أشهر، مع تحديثات مدى الحياة. تواصل معنا عبر صفحة المنتج في السوق التي اشتريت منها الحزمة. يرجى ذكر عنوان متجرك، وإضافة السوق التي تستخدمها، وما فعلته، وما رأيته (ولقطة الشاشة مفيدة).