Skip to content

واجهة الملتقط

حركة الملتقط تذهب إلى واجهة الإدارة (http://localhost:5001) وليس الواجهة العامة.

دخول الموظف

الطريقةالمسارالجسم
POST/v1/auth/login{ email, password }
GET/v1/auth/meالمستخدم الحالي + roleKey
POST/v1/auth/refresh{ "refreshToken" }
POST/v1/auth/logoutرمز وصول Bearer
http
POST /v1/auth/login
Content-Type: application/json

{ "email": "picker1@test.com", "password": "123" }

عند النجاح يتضمن JSON user وaccessToken وrefreshToken وtokenType وexpiresIn (15 دقيقة). احفظ الزوج في SecureStore. أرسل Authorization: Bearer <accessToken> مع كل استدعاء تجهيز. عند 401 حدّث عبر { "refreshToken" }، خزّن الزوج الجديد، وأعد المحاولة مرة واحدة. وجّه الواجهة عندما results.user.roleKey === "picker".

بذور التطوير: picker1@test.com، picker2@test.com، كلمة المرور 123. يمنح الدور orders:read وorders:update.

إن وُجدت branchIds للمستخدم يُقيَّد الطابور بتلك الفروع.

سير العمل

confirmed  --start-->  picking  --scan / unavailable / substitute-->  ready

استطلع GET /v1/fulfillment/picker/orders (بلا WebSocket).

النقاط

كل المسارات على واجهة الإدارة. GET يتطلب orders:read. POST يتطلب orders:update.

الطريقةالمسارالجسمالغرض
GET/v1/fulfillment/picker/ordersبطاقات الطابور
GET/v1/fulfillment/picker/orders/:orderIdالطلب الكامل + حالة الالتقاط
POST/v1/fulfillment/picker/orders/:orderId/startالادعاء؛ الحالة → picking
POST/v1/fulfillment/picker/orders/:orderId/scan{ barcode }مطابقة SKU أو key السطر
POST/v1/fulfillment/picker/orders/:orderId/unavailable{ lineKey }الصنف غير على الرف
POST/v1/fulfillment/picker/orders/:orderId/substitute{ lineKey, productId, variantId? }استبدال منتج
POST/v1/fulfillment/picker/orders/:orderId/readyالإنهاء؛ يجب معالجة كل الأسطر

بطاقة الطابور

يشمل results.data[] الحقول _id وorderNumber وstatus وfulfillmentMode وbranch وlineCount وexpress واختياري etaMinutes / deliverySlot والطوابع الزمنية.

مثال المسح

http
POST /v1/fulfillment/picker/orders/665f0c0c0c0c0c0c0c0c0c10/scan
Content-Type: application/json
Authorization: Bearer <accessToken>

{ "barcode": "6281000000001" }

مطابقة الباركود تستخدم sku المتغير أو key سطر الطلب.

الجاهزية

يفشل POST .../ready حتى يُمسح كل سطر أو يُستبدل أو يُعلَّم غير متوفر. النجاح يطبّق تسويات المخزون ويضبط الحالة إلى ready.

تغلف استجابات الإجراءات عادة { message } مع statusMessage: "UPDATED". أعد جلب الطلب بعد كل POST.