Skip to content

السلة والتوصيل

سلات المسجّلين تُربط بـ العميل (JWT Bearer). الضيوف يستخدمون رمز سلة معتم. التوصيل يُحفظ على السلة.

المتسوقهوية السلة
ضيفX-Cart-Token (القيمة من results.cartToken)
مسجّلJWT فقط — لا ترسل X-Cart-Token

GET /v1/cart يرجع cartToken. احفظه أثناء الضيف. بعد دخول OTP تُدمج سلة الضيف والتوصيل في الحساب.

يمكن للضيوف تعديل السلة. إنشاء الطلب ما يزال يتطلب JWT العميل.

السلة

البادئة: /v1/cart. المصادقة: عامة (JWT اختياري).

الطريقةالمسارالجسمالغرض
GET/v1/cartقراءة السلة والإجماليات
POST/v1/cart/items{ items: [{ productId, variantId?, quantity }] }إضافة 1–50 سطراً
PATCH/v1/cart/items/:keyتحديث الكميةتغيير سطر
DELETE/v1/cart/items/:keyحذف سطر
POST/v1/cart/coupon{ code }تطبيق كوبون
DELETE/v1/cart/couponإزالة الكوبون
POST/v1/cart/loyalty{ points }استبدال نقاط (عميل)
DELETE/v1/cart/loyaltyإلغاء النقاط
POST/v1/cart/express{ enabled: true | false }تبديل السريع
DELETE/v1/cartإفراغ السلة

يأتي key السطر من حمولة السلة. استخدمه في PATCH/DELETE.

مثال إضافة

http
POST /v1/cart/items
Content-Type: application/json
X-Cart-Token: <cartToken>

{
  "items": [
    { "productId": "665f0c0c0c0c0c0c0c0c0c0c", "quantity": 2 }
  ]
}

تُحسب الإجماليات والرسوم وأسطر العروض في الخادم. ثق بـ results ولا تعِد التسعير في التطبيق.

OUT_OF_STOCK و CART_EMPTY أخطاء مجال شائعة.

التوصيل

البادئة: /v1/delivery. المصادقة: عامة. أرسل X-Cart-Token للضيف وBearer عند التسجيل.

الطريقةالمسارالجسمالغرض
GET/v1/delivery/areasالمناطق القابلة للتوصيل
GET/v1/delivery/branchesفروع الاستلام
GET/v1/delivery/slotsالفترات القابلة للحجز (تواريخ الكويت)
POST/v1/delivery/selectحمولة اختيار التوصيلضبط نمط / منطقة التوصيل
POST/v1/delivery/select-branchفرع الاستلامضبط نمط الاستلام
POST/v1/delivery/select-address{ addressId }استخدام عنوان محفوظ (عميل)
POST/v1/delivery/resolve-location{ lat, lng }دبوس → فرع + منطقة

مثال حل الموقع

http
POST /v1/delivery/resolve-location
Content-Type: application/json
X-Cart-Token: <cartToken>

{ "lat": 29.3759, "lng": 47.9774 }

تشمل النتائج mode: "delivery" وbranchId وzoneId وdeliveryFee وminOrder وetaMinutes (الرسوم بالفلس).

عمليات الاختيار تحدّث السلة (fulfillmentMode، branchId، zoneId، addressId، lat، lng).

اختيار عنوان محفوظ

http
POST /v1/delivery/select-address
Content-Type: application/json
Authorization: Bearer <accessToken>

{ "addressId": "665f0c0c0c0c0c0c0c0c0c0d" }

يتطلب JWT عميل وعنواناً على ذلك الحساب.

الفترات

يرجع GET /v1/delivery/slots أياماً:

  • dateYYYY-MM-DD في Asia/Kuwait
  • slots[]templateId وstart وend وremaining وavailable وlabel مترجم

عند إنشاء طلب توصيل مجدول أرسل deliverySlot: { templateId, date }. احذف الفترة للاستلام أو السريع أو التسليم الأقرب.