انتقل إلى المحتوى الرئيسي

المقدمة

🎯 ماذا يفعل هذا الموديل؟

يمكنك وحدة ProductStatuses من إضافة شروط تصفية إضافية لعناصر الكتالوج بجانب الفلاتر المعتمدة على السمات الموجودة. تتيح لك حالة المنتج إنشاء تسميات وفلاتر مخصصة للمنتجات - مثل "وصول جديد"، "الأكثر مبيعًا"، "تخفيضات"، "غير متوفر" - لتنظيم وتصنيف المنتجات في كتالوج التجارة الإلكترونية الخاص بك.

تعمل الحالات كآليات تصفية إضافية لعناصر الكتالوج، حيث تعمل بالتزامن مع التصفية المعتمدة على السمات لتوفير خيارات تنظيم وتصنيف أكثر دقة لإدارة المنتجات.

فكر في الأمر كنظام لتصنيف المنتجات - تقوم بتعريف تسميات الحالة في لوحة إدارة OneEntry (الكتالوج > حالات المنتج)، وتعيينها للمنتجات، واستخدامها لتصفية، ووضع شارات، وتصنيف المنتجات بشكل ديناميكي.


📖 شرح بسيط

تحتاج كل متجر إلكتروني إلى تسليط الضوء على المنتجات الخاصة:

  • 🆕 وصول جديد - منتجات تمت إضافتها مؤخرًا
  • 🔥 الأكثر مبيعًا - عناصر شائعة
  • 💰 تخفيضات - منتجات مخفضة
  • مميزة - منتجات بارزة
  • 📦 غير متوفر - عناصر غير متاحة
  • 🎁 إصدار محدود - منتجات حصرية
  • 🚚 شحن مجاني - منتجات مع توصيل مجاني

المشكلات:

  • 🔒 غير مرنة - تحتاج إلى تغييرات في الكود لإضافة حالات جديدة
  • 📊 صعبة الإدارة - حقول منطقية متعددة
  • 🔄 لا يمكن إعادة استخدامها - لا يمكن إعادة استخدام منطق الحالة
  • 🎨 غير متسقة - أنماط شارات مختلفة في كل مكان

حل ProductStatuses:

الفوائد:

  • 🔒 مرنة - إضافة/إزالة الحالات في لوحة الإدارة
  • 📊 سهلة الإدارة - تعريفات حالة مركزية
  • 🔄 قابلة لإعادة الاستخدام - نفس الحالة للعديد من المنتجات
  • 🎨 متسقة - عرض شارات موحد

✨ المفاهيم الأساسية

ما هي حالة المنتج؟

حالة المنتج هي تسمية/علامة مخصصة للمنتجات:

  • اسم الحالة - الاسم المعروض (مثل "وصول جديد"، "تخفيضات")
  • علامة الحالة - معرف فريد للتصفية
  • لون/نمط - تمثيل بصري (يتم تكوينه في الإدارة)
  • ارتباط المنتج - أي المنتجات تحمل هذه الحالة
  • التصفية - استعلام عن المنتجات حسب الحالة

سير عمل حالة المنتج

1. إنشاء حالة في لوحة الإدارة
(مثل "وصول جديد")

2. تعيين الحالة للمنتجات
(اختر المنتجات في الإدارة)

3. جلب الحالات عبر SDK
(ProductStatuses.getProductStatuses())

4. عرض شارات الحالة على المنتجات
(عرض الشارات في قوائم المنتجات)

5. تصفية المنتجات حسب الحالة
(Products.getProducts({ statusId }))

لماذا تستخدم وحدة ProductStatuses؟

الفائدةالوصف
تصفية مرنةتصفية المنتجات حسب معايير مخصصة متعددة
شارات ديناميكيةعرض شارات بصرية دون الحاجة إلى ترميز ثابت
إدارة سهلةإضافة/إزالة الحالات في لوحة الإدارة
تسميات قابلة لإعادة الاستخدامتطبيق نفس الحالة على العديد من المنتجات
دعم متعدد اللغاتأسماء الحالات محلية حسب اللغة
تصميم مخصصتعريف الألوان والأنماط لكل حالة

📋 ما تحتاج إلى معرفته

تُنشأ حالات المنتج في لوحة الإدارة

لا يمكنك إنشاء حالات عبر SDK - يتم إنشاؤها في لوحة إدارة OneEntry:

OneEntry Admin Panel → Catalog → Product Statuses → Create Status → Set Name/Marker → Save

عملية الإنشاء:

  • قدم اسمًا - تعيين الحالة (مطلوب)
  • قدم علامة - معرف فريد (مطلوب، أحرف وأرقام لاتينية/'_'/'-' فقط)
  • انقر على "إنشاء" لإنهاء

قيود العلامة:

  • أحرف لاتينية فقط (a-z, A-Z)
  • أرقام (0-9)
  • الرموز (_) و(-)
  • لا يُسمح بأحرف خاصة أو مسافات

إدارة الحالة:

  • عرض القائمة - جدول مع أعمدة الاسم، العلامة، والإجراءات
  • تحرير الحالة - تعديل حقول الاسم والعلامة
  • حذف الحالة - إزالة الحالات غير المستخدمة
  • إعادة ترتيب - سحب وإفلات لتغيير ترتيب العرض (يؤثر على حقل sortOrder)

SDK مخصص لـ جلب الحالات وتصفية المنتجات، وليس لإنشاء الحالات.

تعيين الحالة

تُعين الحالات للمنتجات في لوحة الإدارة:

OneEntry Admin Panel → Products → Edit Product → Assign Statuses → Save

في SDK: تحتوي المنتجات على مصفوفة statusIds مع معرفات الحالة المعينة:

const product = await Products.getProductById(123);
console.log(product.statusIds); // [1, 2] - معرفات الحالة

التصفية حسب الحالة

استخدم معرف الحالة لتصفية المنتجات

دعم متعدد اللغات

تتم محلية أسماء الحالات تلقائيًا


💡 ملاحظات مهمة

تُنشأ الحالات في لوحة الإدارة

تذكر: SDK مخصص لـ جلب الحالات، وليس لإنشائها.

لإنشاء/تحرير الحالات: استخدم لوحة إدارة OneEntry.


واجهة قائمة الحالات

تعرض لوحة الإدارة جميع الحالات في جدول مع ثلاثة أعمدة:

  • الاسم - تعيين الحالة
  • العلامة - معرف فريد
  • الإجراءات - عمليات التحرير والحذف، بالإضافة إلى إعادة ترتيب السحب والإفلات

التحقق من العلامة

مهم: تساعدك طريقة validateMarker() في التحقق مما إذا كانت العلامة موجودة بالفعل قبل إنشائها/استخدامها.

قيود العلامة:

  • أحرف أبجدية رقمية لاتينية فقط (a-z, A-Z, 0-9)
  • يُسمح بالرموز (_) و(-)
  • لا مسافات أو أحرف خاصة
  • يجب أن تكون فريدة عبر جميع الحالات

حالات متعددة لكل منتج

يمكن أن تحتوي المنتجات على حالات متعددة في نفس الوقت (مثل "وصول جديد" + "تخفيضات")


الحالة مقابل السمات

تختلف ProductStatuses عن سمات المنتج:

الميزةProductStatusesالسمات
الغرضتسميات/شارات/فلاترخصائص المنتج
أمثلة"جديد"، "تخفيضات"، "مميز"اللون، الحجم، المادة
قيم متعددةنعم (حالات متعددة)نعم (سمات متعددة)
التصفيةبسيطة (حسب معرف الحالة)معقدة (نطاقات، قيم)
حالة الاستخدامتسميات تسويقيةمواصفات المنتج

أفضل ممارسة: استخدم الحالات للتسميات التسويقية، والسمات لخصائص المنتج.


📊 جدول مرجعي سريع

الطريقةالوصفحالة الاستخدام
getProductStatuses()الحصول على جميع حالات المنتجعرض جميع الحالات المتاحة
getProductsByStatusMarker()الحصول على حالة المنتج حسب العلامةجلب الحالة حسب المعرف
validateMarker()التحقق مما إذا كانت العلامة موجودةالتحقق من العلامة قبل الاستخدام

❓ الأسئلة الشائعة (FAQ)

ما الفرق بين حالات المنتج وسمات المنتج؟

حالات المنتج هي تسميات تسويقية (جديد، تخفيضات، مميز) للتصفية ووضع الشارات، بينما السمات هي مواصفات المنتج (اللون، الحجم، المادة). استخدم الحالات لعلامات الترويج والسمات لخصائص المنتج.


هل يمكن أن يحتوي المنتج على حالات متعددة في نفس الوقت؟

نعم! يمكن أن تحتوي المنتجات على حالات متعددة في نفس الوقت. على سبيل المثال، يمكن أن يكون المنتج "وصول جديد" و"تخفيضات" في نفس الوقت. تحتوي مصفوفة statusIds في كائن المنتج على جميع معرفات الحالة المعينة.


كيف يمكنني تصفية المنتجات حسب الحالة؟

استخدم طرق وحدة Products مع فلاتر الحالة. مرر معرف الحالة أو العلامة في استعلامك لجلب المنتجات ذات الحالات المحددة. يمكنك أيضًا دمج فلاتر حالات متعددة.


كيف يمكنني التحقق من علامة قبل إنشاء حالة؟

استخدم طريقة validateMarker() للتحقق مما إذا كانت العلامة موجودة بالفعل. يساعد ذلك في منع العلامات المكررة ويضمن أن تتبع علامتك قواعد التسمية (أحرف لاتينية، أرقام، شرطة سفلية، شرطة فقط).


هل يمكنني تغيير ترتيب الحالات المعروضة؟

نعم! في لوحة الإدارة، يمكنك سحب وإفلات الحالات لإعادة ترتيبها. يؤثر ذلك على حقل sortOrder ويحدد أولوية العرض في تطبيقك.


كيف يمكنني إضافة تصميم مخصص لشارات الحالة؟

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


🎓 أفضل الممارسات

  • استخدم علامات وصفية - new_arrival، وليس status1
  • حدد الألوان بشكل متسق - استخدم لوحة ألوان العلامة التجارية
  • حدد حالات نشطة - لا تفرط في تحميل المستخدمين بالكثير من الشارات
  • اجعل أسماء الحالات قصيرة - "تخفيضات" أفضل من "منتجات في تخفيضات"
  • استخدم الحالة للتصفية - اجعل الحالات قابلة للتصفية في واجهة المستخدم
  • قم بتخزين الحالات مؤقتًا - نادرًا ما تتغير، خزّنها لأداء أفضل
  • عرض حالات متعددة - عرض جميع الشارات ذات الصلة على المنتجات
  • استخدم الحالة للفرز - فرز حسب حالة "مميزة" أولاً

مزيد من المعلومات حول حالات المنتج في لوحة إدارة OneEntry: https://doc.oneentry.cloudhttps://doc.oneentry.cloud/docs/catalog/product-statuses/


تعريف وحدة ProductStatuses

تدير وحدة ProductStatuses الحالات التي تعمل كفلاتر إضافية بجانب الشروط المحددة بواسطة السمات. تتيح حالات المنتج شروط تصفية إضافية لعناصر الكتالوج في منصة OneEntry، وتعمل بالتزامن مع التصفية المعتمدة على السمات.


const { ProductStatuses } = defineOneEntry(
"your-project-url", {
"token": "your-app-token"
}
);


🔗 الوثائق ذات الصلة