# POS Offline Scenario Matrix

هذه السيناريوهات تُنفذ يدويًا على Staging بمتصفح نظيف قبل نشر أي تعديل على الأوفلاين.

## S1 - First load online -> offline reload

1. افتح نقطة البيع والإنترنت متصل.
2. نفّذ «تجهيز الأوفلاين» وانتظر اكتمال الكتالوج والملفات الثابتة.
3. افصل الشبكة وأعد تحميل الصفحة.
4. تحقق من ظهور المنتجات والبحث والتصنيفات وإمكانية تكوين سلة.

النتيجة المتوقعة: تعمل شاشة البيع من التخزين المحلي وتظهر حالة Offline بوضوح.

## S2 - Sell offline -> reconnect sync

1. بعد التجهيز افصل الشبكة.
2. أنشئ عملية بيع كاملة واحفظها.
3. تحقق من ظهورها في طابور المزامنة مرة واحدة فقط.
4. أعد الشبكة وشغّل المزامنة.

النتيجة المتوقعة: تُرسل العملية مرة واحدة، يُحفظ رقم الفاتورة، ويُفرغ العنصر من الطابور.

## S3 - Close/reopen while offline

1. أنشئ سلة أو مسودة بدون شبكة.
2. أغلق المتصفح أو الجهاز ثم افتح نقطة البيع وما زالت الشبكة مفصولة.
3. وافق على استعادة المسودة.

النتيجة المتوقعة: تعود السلة بالكميات والأسعار والعميل بدون فقد أو تكرار.

## S4 - Price changed during offline

1. جهّز الكتالوج ثم افصل جهاز نقطة البيع.
2. غيّر سعر منتج من جهاز آخر متصل.
3. أضف المنتج بالسعر القديم إلى فاتورة أوفلاين.
4. أعد الاتصال وحاول المزامنة.

النتيجة المتوقعة: تظهر مراجعة تعارض السعر ويختار المستخدم تحديث السعر أو الاعتماد حسب الصلاحية، بدون حفظ صامت بسعر خاطئ.

## فحوص إضافية

- إرجاع بيع أوفلاين ثم المزامنة.
- استبدال صنف أوفلاين ثم المزامنة.
- انقطاع الشبكة أثناء إرسال الفاتورة وعدم تكرارها.
- انتهاء الجلسة أو CSRF أثناء وجود عناصر معلقة.
- امتلاء تخزين المتصفح وظهور تحذير واضح للمستخدم.
