API التصنيفات
إدارة تصنيفات المنتجات مع دعم التسلسل الهرمي المتداخل.
نقاط النهاية
/categories
الحصول على قائمة مسطحة لجميع التصنيفات.
/categories/tree
الحصول على شجرة التصنيفات الكاملة مع التصنيفات الفرعية المتداخلة.
/categories/:id
الحصول على تصنيف واحد حسب المعرف.
/categories
إنشاء تصنيف جديد. عيّن parentId لإنشاء تصنيف فرعي.
/categories/:id
تحديث تصنيف موجود. التحديثات الجزئية مدعومة.
/categories/:id
حذف ناعم للتصنيف. لا تتأثر المنتجات في هذا التصنيف.
مرجع الحقول
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
id | string | لا | معرف التصنيف الفريد (للقراءة فقط) |
name | string | نعم | اسم التصنيف |
slug | string | لا | رابط URL ودي (يُنشأ تلقائياً إذا حُذف) |
description | string | لا | وصف التصنيف |
parentId | string | لا | معرف التصنيف الأب للتداخل |
imageUrl | string | لا | رابط صورة التصنيف |
sortOrder | integer | لا | ترتيب العرض (أقل = أولاً) |
isActive | boolean | لا | هل التصنيف نشط (افتراضي: true) |
children | Category[] | لا | التصنيفات الفرعية المتداخلة (فقط في نقطة نهاية الشجرة) |
createdAt | datetime | لا | طابع زمني ISO 8601 (للقراءة فقط) |
updatedAt | datetime | لا | طابع زمني ISO 8601 (للقراءة فقط) |
مثال
الحصول على شجرة التصنيفات
curl "https://api.mercozy.com/api/v1/external/categories/tree" \
-H "X-API-Key: mk_live_xxxxx"إنشاء تصنيف
curl -X POST "https://api.mercozy.com/api/v1/external/categories" \
-H "X-API-Key: mk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Electronics",
"description": "Electronic devices and accessories",
"sortOrder": 1,
"isActive": true
}'مثال الاستجابة (شجرة)
{
"data": [
{
"id": "cat_abc123",
"name": "Electronics",
"slug": "electronics",
"description": "Electronic devices and accessories",
"parentId": null,
"imageUrl": null,
"sortOrder": 1,
"isActive": true,
"children": [
{
"id": "cat_def456",
"name": "Smartphones",
"slug": "smartphones",
"description": "Mobile phones",
"parentId": "cat_abc123",
"imageUrl": null,
"sortOrder": 1,
"isActive": true,
"children": []
}
],
"createdAt": "2025-12-15T10:30:00Z",
"updatedAt": "2025-12-15T10:30:00Z"
}
]
}