واجهة المنتجات
قائمة المنتجات
GET /api/v1/productsترجع قائمة مرقّمة بجميع المنتجات النشطة مع متغيراتها وصورها.
معاملات الاستعلام
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
limit | integer | 50 | عدد العناصر في الصفحة (1-200) |
cursor | string | — | طابع زمني ISO للتصفح |
order | string | asc | اتجاه الترتيب (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-More | true إذا كانت هناك بيانات إضافية |
أنواع المنتجات
| النوع | الوصف |
|---|---|
physical | سلع مادية مع تتبع المخزون |
food | أصناف طعام/مطاعم مع مخزون |
digital | ملفات قابلة للتنزيل |
digital_card | أكواد مسبقة الدفع/مفاتيح ترخيص |
service | خدمة بحقول مخصصة |
bundle | مجموعة من منتجات أخرى |
خصائص المتغيرات
تستخدم المتغيرات حقل attributes من نوع JSONB مرن:
{ "color": "red", "size": "L", "material": "cotton" }لربط Odoo، يصبح كل مفتاح فريد product.attribute وكل قيمة فريدة تصبح product.attribute.value.