حجز المخزون في تطبيق العمل: متى تتوقف القطعة عن كونها متاحة؟
حددوا الحدث الذي يحجز البضاعة قبل طلب تطبيق للطلبات أو إدارة العمل. إضافة صنف إلى مسودة، وقبول عرض سعر، وتأكيد طلب ليست أحداثاً متطابقة. ينبغي أن يوضح التطبيق أيها يخفض الكمية المتاحة، ومدة الحجز المؤقت، وما الذي يحرر الكمية المحجوزة. وجود القطعة داخل المبنى لا يعني بالضرورة إمكان التعهد بتسليمها لعميل آخر.
هذا الدليل عن تخصيص البضائع للعمل، لا عن تحويل العبوات إلى قطع أو مسح الرموز أو تحصيل الدفعات. مقترحات التصميم توصيات لإعداد متطلبات المشروع. ونستخدم توثيق Shopify مثالاً محدداً لحالات المخزون، لا دليلاً على أن كل الأنظمة تعمل بالطريقة نفسها.
أعطوا كل كمية معنى واضحاً
اطلبوا تعريفاً مفهوماً للبضاعة الموجودة فعلياً، والمخصصة مسبقاً لطلبات، والمستبعدة من البيع، والتي لا تزال في الطريق. لا تجعلوا عبارة واحدة مثل «في المخزون» تعني هذه الحالات كلها.
يعرّف توثيق Shopify لحالات المخزون الكمية المتاحة بأنها القابلة للبيع، غير المخصصة لطلبات وغير المستبعدة من البيع، ولا تشمل البضاعة الواردة التي لم تُستلم بعد. ويشمل إجمالي الموجود فعلياً الكميات المخصصة والمستبعدة والمتاحة. هذه تعريفات Shopify؛ أما تطبيقكم الخاص فيحتاج إلى اتفاق بالوضوح نفسه.
التمييز مهم في العمل اليومي. قد تكون قطعة تالفة على الرف لكنها غير صالحة للاستخدام. وقد تكون بضاعة وُعد بها عميل ما زالت في المستودع لكنها ليست حرة لطلب آخر. وشحنة متوقعة غداً ليست بضاعة استلمتموها اليوم. إذا قررتم السماح بطلبات مسبقة، فاشرحوا ذلك كوعد مختلف، بدلاً من عرض البضاعة المنتظرة كأنها موجودة بالفعل.
اختاروا الحدث الذي يبدأ الحجز
اكتبوا تسلسل العمل الحقيقي: هل يحجز عرض السعر شيئاً؟ هل يبدأ الحجز عند موافقة الموظف أم عند تأكيد الطلب فقط؟ وهل يجب اختيار موقع الاستلام أولاً؟
يصف Shopify الكميات المخصصة بأنها وحدات موضوعة جانباً لا يمكن بيعها، ومنها وحدات طلبات لم تُنفذ بعد، وحجوزات داخل مسودات الطلبات، وتحويلات مخزون عُلّمت بأنها جاهزة للشحن. لذلك فإن كلمة «مسودة» وحدها لا تخبركم إن كانت البضاعة محجوزة أم لا.
التوصية لتطبيقكم هي إظهار حالة الوعد بجانب سجل العمل. عبارة «مسودة، لا توجد بضاعة محجوزة» تختلف عن «محجوز حتى وقت الانتهاء المعروض». وإذا انتهى حجز مؤقت، فحددوا ما إذا كان يجب فحص التوافر من جديد قبل المتابعة. لا تتركوا وعداً انتهت صلاحيته على شاشة التأكيد وكأنه ما زال سارياً.
تحرير الحجز لا يعيد بضاعة لم تصل
اتفقوا على أثر الإلغاء وخفض الكمية واستبدال الصنف. تحرير حجز لطلب لم يُنفذ يختلف عن استلام بضاعة مرتجعة. إذا خرجت القطعة من المنشأة، فلا ينبغي أن يعيدها إلغاء الطلب تلقائياً إلى الرف في السجل.
من يؤكد وصول المرتجع وحالته قبل إتاحته مجدداً؟ يوضح فصل Shopify بين المخزون المستبعد والمتاح سبب الحاجة أحياناً إلى حجب قطعة حتى بعد وصولها. كما يذكر التوثيق أن بعض التطبيقات قد تضع البضائع المستلمة في حالة غير متاحة للبيع، مثل مخزون الأمان. الاستلام والسماح بالبيع قراران مختلفان.
وفي الطلب المنفذ جزئياً، اطلبوا عرضاً يثبت أن إلغاء الباقي يحرر تخصيص الجزء غير المنفذ فقط. احتفظوا بتفسير ظاهر للتعديل، كي يفهم الموظفون ما تغير ولماذا.
اختبروا القطعة الأخيرة، لا المخزون المريح فقط
مثال قبول افتراضي: يحاول موظفان من شاشتين منفصلتين حجز آخر قطعة متاحة في الوقت نفسه. إذا كانت السياسة تمنع البيع فوق المتاح، فيجب أن ينجح حجز واحد ويحصل الآخر على نتيجة صادقة تفيد بعدم التوافر. ظهور بيانات تبدو حديثة لا يثبت وحده أن الحجز المحفوظ صحيح.
هذه نتيجة مطلوبة من المشروع، وليست ضماناً تقنياً يقدمه توثيق Shopify. على المطور اختيار آلية الخادم واختبارها، بما في ذلك إعادة المحاولات والقنوات الأخرى التي تعدل المخزون. وإذا كان الموقع ونقطة البيع والمستودع يعملون في أنظمة منفصلة، فحددوا مصدر التوافر المعتمد وما يحدث عند تأخر المزامنة. وجود تكامل بين الأنظمة لا يكفي للوعد بتطابق فوري.
حالات تضعونها في متطلبات المشروع
أضيفوا هذه الاختبارات إلى معايير قبول التطبيق:
- لا تغير المسودة التي لا تحجز بضاعة الكمية المتاحة.
- يخفض الحجز الناجح ما يستطيع الآخرون حجزه في الموقع الصحيح.
- يتحرر الحجز المؤقت المنتهي مرة واحدة، وتتطلب المتابعة فحص التوافر المتفق عليه.
- يحرر الإلغاء التخصيص المناسب للعمل غير المنفذ، لا البضاعة التي شُحنت بالفعل.
- لا تصبح المرتجعات قابلة للبيع قبل قرار الاستلام وفحص الحالة المتفق عليه.
- يحترم حجزان متنافسان للقطعة الأخيرة سياسة منع البيع فوق المتاح.
- يؤدي تأخر تحديث خارجي إلى التحذير أو القيد المتفق عليه، لا إلى إظهار يقين غير حقيقي.
المخرج المفيد هو دورة حجز موثقة ومعروضة بسجلات اختبار، لا عدّاد للمخزون فحسب. ابدأوا مناقشة مشروع التطبيق بتحديد لحظة تعهد الفريق بالبضاعة ولحظة انتهاء ذلك التعهد. هذان القراران يوجهان بقية الميزة.