تخطَّ إلى المحتوى

واجهة المنتجات

قائمة المنتجات

GET /api/v1/products

ترجع قائمة مرقّمة بجميع المنتجات النشطة مع متغيراتها وصورها.

معاملات الاستعلام

المعاملالنوعالافتراضيالوصف
limitinteger50عدد العناصر في الصفحة (1-200)
cursorstringطابع زمني ISO للتصفح
orderstringascاتجاه الترتيب (asc أو desc)

الاستجابة

{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Premium Arabic Coffee",
"slug": "premium-arabic-coffee",
"product_type": "physical",
"barcode": "6281000000001",
"sku": "COF-001",
"price": 25.00,
"cost_price": 12.50,
"stock": 150,
"category_id": "cat-uuid-here",
"thumbnail_url": "https://storage.example.com/products/coffee.jpg",
"is_active": true,
"variants": [
{
"id": "var-uuid-1",
"name": "250g",
"sku": "COF-001-250",
"price": 25.00,
"stock": 80,
"attributes": { "weight": "250g" }
}
],
"images": [
{
"id": "img-uuid-1",
"image_url": "https://storage.example.com/products/coffee-1.jpg",
"is_primary": true
}
],
"last_modified": "2026-04-20T10:30:00Z"
}
],
"pagination": {
"next_cursor": "2026-04-20T10:30:00Z",
"has_more": true,
"limit": 50
}
}

جلب منتج واحد

GET /api/v1/products/:id

يرجع منتجًا واحدًا بواسطة المعرّف مع جميع المتغيرات والصور.

التصدير بالجملة

GET /api/v1/products/export

يرجع حتى 500 منتج لكل طلب بتنسيق NDJSON (كائن JSON واحد لكل سطر). يُستخدم للمزامنة الأولية.

الترويسةالوصف
X-Next-Cursorمؤشر الصفحة التالية
X-Has-Moretrue إذا كانت هناك بيانات إضافية

أنواع المنتجات

النوعالوصف
physicalسلع مادية مع تتبع المخزون
foodأصناف طعام/مطاعم مع مخزون
digitalملفات قابلة للتنزيل
digital_cardأكواد مسبقة الدفع/مفاتيح ترخيص
serviceخدمة بحقول مخصصة
bundleمجموعة من منتجات أخرى

خصائص المتغيرات

تستخدم المتغيرات حقل attributes من نوع JSONB مرن:

{ "color": "red", "size": "L", "material": "cotton" }

لربط Odoo، يصبح كل مفتاح فريد product.attribute وكل قيمة فريدة تصبح product.attribute.value.