محتويات الوثائق
مخزون بلس
Makhzoon Plus
لا يوفر مخزون بلس واجهة برمجية مباشرة — الربط عبر تبادل ملفات CSV حصريًا.
مزود تخزين وتنفيذ داخل المملكة العربية السعودية: استلام المخزون في مستودعات الرياض وجدة والدمام، ثم الانتقاء والتغليف والتوصيل حتى باب العميل. ترسل طلبات التنفيذ على شكل ملف CSV واحد لكل دفعة، وتعاد النتائج على شكل ملف CSV أيضًا.
الخدمة
| رمز الخدمة | الاسم | الوسيلة | مدة التوصيل | النطاق |
|---|---|---|---|---|
| FULFIL_STD | تنفيذ قياسي | بري | 1–4 أيام عمل | داخل المملكة |
سير العمل
- 1جهز ملف CSV وفق الصيغة أدناه (ترميز UTF-8).
- 2ارفع الملف إلى نقطة الرفع عبر multipart/form-data في الحقل file.
- 3استعلم عن حالة الدفعة — تُعالج الدفعات خلال دقيقتين تقريبًا.
- 4عند الاكتمال نزل ملف النتائج، أو ملف الرفض إن رفضت الدفعة.
صيغة الملف
يتكون الملف من صف رأس واحد يليه صف لكل طلب. صف الرأس إلزامي ويجب أن يطابق الأسماء والترتيب التاليين حرفيًا (11 عمودًا):
order_ref,recipient_name_ar,recipient_name_latin,phone,city,district,short_address,sku,qty,cod_amount_sar,notes| العمود | إلزامي | القاعدة |
|---|---|---|
| order_ref | نعم | مرجع الطلب لديك؛ يظهر كما هو في ملف النتائج. |
| recipient_name_ar | نعم | اسم المستلم بالعربية — يجب أن يحتوي أحرفًا عربية. |
| recipient_name_latin | نعم | الاسم بأحرف لاتينية فقط (كتابة صوتية)؛ وجود أي حرف عربي يرفض الملف. |
| phone | نعم | جوال سعودي بصيغة 9665XXXXXXXX (12 رقمًا، دون + أو 00 أو مسافات). |
| city | نعم | مدينة سعودية — الخدمة داخل المملكة فقط. |
| district | نعم | اسم الحي (نص حر). |
| short_address | لا | العنوان الوطني المختصر: 4 أحرف لاتينية كبيرة يليها 4 أرقام (مثل RRDA2929)، أو يترك فارغًا. |
| sku | نعم | رمز المنتج كما هو مسجل في مخزونك لدى مخزون بلس. |
| qty | نعم | عدد صحيح موجب. |
| cod_amount_sar | نعم | مبلغ الدفع عند الاستلام بالريال السعودي؛ استخدم 0 إن لم يوجد. |
| notes | لا | ملاحظات التوصيل (اختياري). |
سياسة الرفض
أي صف غير صالح يرفض الملف كاملًا — لا معالجة جزئية. صحح الصفوف المذكورة في ملف الرفض ثم أعد رفع الملف كاملًا في دفعة جديدة.
ملف نموذجي
نموذج صالح جاهز للرفع كما هو:
order_ref,recipient_name_ar,recipient_name_latin,phone,city,district,short_address,sku,qty,cod_amount_sar,notes
ORD-1001,محمد العتيبي,Mohammed Alotaibi,966512345678,Riyadh,العليا,RRDA2929,SKU-100,2,150,اتصال قبل التسليم
ORD-1002,نورة القحطاني,Noura Alqahtani,966598765432,Jeddah,الروضة,JEDB4411,SKU-205,1,0,
ORD-1003,خالد الشمري,Khalid Alshammari,966533221100,Dammam,الشاطئ,,SKU-100,3,89.50,تسليم مسائيتنزيل الملف النموذجي (CSV)رفع دفعة
ارفع الملف عبر multipart/form-data في الحقل file. يعاد معرف الدفعة batch_id وحالتها الأولية PROCESSING.
POST /api/v1/makhzoon/batchescurl -X POST "https://manfath.example/api/v1/makhzoon/batches" \
-H "Authorization: Bearer mnf_live_YOUR_KEY" \
-F "file=@orders.csv"الاستعلام عن الحالة
استعلم عن الدفعة بمعرفها حتى تتحول الحالة من PROCESSING إلى COMPLETED أو REJECTED. تُعالج الدفعات خلال دقيقتين تقريبًا، فلا حاجة إلى الاستعلام أكثر من مرة كل 15–30 ثانية.
GET /api/v1/makhzoon/batches/{batch_id}curl "https://manfath.example/api/v1/makhzoon/batches/BATCH_ID" \
-H "Authorization: Bearer mnf_live_YOUR_KEY"مثال الاستجابة
{
"batch_id": "ckz7q2m1x0001",
"status": "COMPLETED",
"row_count": 3,
"accepted_count": 3,
"rejected_count": 0,
"result_csv": "order_ref,recipient_name_ar,...,tracking_number,status\n..."
}حالات الدفعة
| الحالة | الوصف |
|---|---|
| PROCESSING | الدفعة قيد المعالجة. |
| COMPLETED | قبلت جميع الصفوف وأنشئت الشحنات؛ ملف النتائج متاح. |
| REJECTED | رفض الملف كاملًا؛ ملف الرفض متاح. |
ملف النتائج
عند اكتمال الدفعة (COMPLETED) يعاد الملف نفسه مضافًا إليه عمودان في نهاية كل صف: tracking_number وstatus. ينشأ لكل صف شحنة تنفيذ بخدمة FULFIL_STD تتتبع عبر منصة منفذ كأي شحنة أخرى.
order_ref,recipient_name_ar,recipient_name_latin,phone,city,district,short_address,sku,qty,cod_amount_sar,notes,tracking_number,status
ORD-1001,محمد العتيبي,Mohammed Alotaibi,966512345678,Riyadh,العليا,RRDA2929,SKU-100,2,150,اتصال قبل التسليم,MKZ402118374,CREATEDملف الرفض
عند رفض الدفعة (REJECTED) يعاد ملف رفض بأربعة أعمدة: row_number (رقم الصف بعد الرأس) وfield (العمود المتأثر) وreason_ar وreason_en:
row_number,field,reason_ar,reason_en
3,phone,صيغة رقم الجوال غير صحيحة — المطلوب 9665XXXXXXXX,invalid phone format — expected 9665XXXXXXXX
7,recipient_name_latin,الاسم اللاتيني يحتوي أحرفًا عربية,latin name contains Arabic characters