قالب المواصفات الفنية لكل فئة: واط، فولت، شكل، نوع LED… تُعرَّف هنا ثم تظهر كحقول ديناميكية في نموذج المنتج.
كل صف = مواصفة واحدة مربوطة بفئة. عند إنشاء/تعديل منتج في تلك الفئة يظهر تبويب Specifications بحقول ديناميكية مولَّدة من هذه التعريفات. القيم تُحفظ في جدول product_spec_values.
يمكن أيضاً إدارة المواصفات من داخل تعديل الفئة (تبويب Spec Definitions) دون فتح هذه الشاشة.
| المورد | الحقل | الأثر |
|---|---|---|
| Categories | category_id — مطلوب |
الفئة مالكة المواصفة. حذف الفئة يحذف كل تعريفاتها. |
| Products | عبر ProductSpecValue | قيم المواصفات المحفوظة على المنتج. حذف التعريف يحذف قيمه على كل المنتجات (cascade). |
| Storefront Products | attributes_json على Variant |
المتغيّرات تُخزّن المواصفات ذات is_variant_attribute = true كـ JSON. يُتحقق من صحتها عند الحفظ. |
| Comparison Groups | is_comparable |
المواصفات المعلَّمة Comparable تظهر في جدول المقارنة على الموقع. |
| الموقع — فلاتر | is_filterable |
المواصفات Filterable تُبنى منها فلاتر صفحة الفئة. |
| الاسم | التقني | مطلوب؟ | الشرح |
|---|---|---|---|
| Category | category_id | مطلوب | الفئة. |
| Label (English) | label_en | مطلوب | الاسم الظاهر. يولّد Key و Code. |
| Name (Arabic) | name_ar | اختياري | للعرض العربي. |
| Input Type | input_type | مطلوب | text / number / select / textarea / boolean. الافتراضي text. |
| Unit | unit | اختياري | واحدة القياس: W, V, cm… |
| Sort Order | sort_order | افتراضي 1 | ترتيب الظهور. يمكن السحب. |
| Options (JSON) | options_json | مطلوب لـ select | مصفوفة خيارات. يُتحقق منها عند الحفظ. |
| Code | code | مطلوب / فريد | في قسم Advanced المطوي. يُولَّد من Label. |
| Key | key | مطلوب / فريد | في قسم Advanced. فريد مع الفئة. |
| Is required | is_required | — | هل يجب ملء القيمة عند المنتج. |
| Is filterable | is_filterable | — | تظهر كفلتر في صفحة الفئة على الموقع. |
| Is comparable | is_comparable | — | تظهر في جدول مقارنة المنتجات. |
| Is searchable | is_searchable | — | تُفهرس للبحث. |
| Is variant attribute | is_variant_attribute | افتراضي مفعّل | تُخزَّن على كل Storefront Variant كـ JSON. |
| Is active | is_active | افتراضي مفعّل | غير النشطة لا تظهر في نموذج المنتج. |
| المشكلة | السبب | الحل |
|---|---|---|
| لا تظهر المواصفة في المنتج | Is active مغلق | فعّلها. |
| رفض حفظ: options_json فارغ | Input type = select بلا خيارات | أضف مصفوفة JSON أو غيّر النوع. |
| Variant لا يتحقق من المواصفة | is_variant_attribute مغلق | فعّله إن أردت تخزينها على المتغيّر. |