هب واحد لمحطة المخزن. الموظف بيدخل مرة واحدة، وبعدين بيتنقّل بين الطباعة والتغليف وحذف المنتج وتسليمات بوسطة ومرتجعات بوسطة وإحصائيات المخزن من غير ما يدخل تاني ومن غير ما يفتح تبويبات متفرقة.
⚠️ الجدول تحت بيعرض الـ Workers اللي الشاشة دي بتناديهم (طوابير الطباعة والتغليف). سكانرا بوسطة ليهم Workers خاصين بيهم — كل صفحة بتفحص نسخة الـ Worker بتاعها لوحدها، وشاشة «عن الأداة» جوّاها بتعرضه.
get_ready_orders بيصفّح كل الأوردرات ويصنّف S2 لكل واحد،
فاستعلام على شاشة محدش شايفها تكلفته حقيقية على الـ Worker وعلى شوبيفاي.sessionStorage — بتعيش عبر التنقل بين الصفحات،
وبتموت مع قفل التاب ولكل تاب لوحده.employee بيتبعت من العميل في كل
كتابة النهاردة كمان، والـ Worker بيتحقق من السر مش من هوية الموظف.
المحاسبة شرف مش إثبات — قبل الهب وبعده.warehouse_ops_center —
على Worker الدخول المستقل بتاع الهب نفسه، متحدّد في كوده
مباشرة من v1.32.0 (قبلها كان عبر Worker التغليف بـappId).warehouse_ops — نفس القيمة على عشرة
Workers (الطباعة · التغليف · حذف منتج · باركود SKU · تسليمات بوسطة ·
مرتجعات بوسطة · تسليمات المكتب · استلام المرتجعات · جرد المخزون · الدخول).warehouse_ops_worker_secret، وهو الحاجة
الوحيدة في التخزين المحلي (warehouse_ops_worker_secret) في الهب كله — فيما عدا تفضيل عرض أعمدة جداول «جرد المخزون» (stockaudit_col_widths_*)، وده تفضيل واجهة مش هوية ولا سر.Inventory-Audit-Updater.html، ومربعها في قسم «أخرى». الأقسام التلاتة (جرد فردي · أولويات الجرد · جرد جماعي) وسجل العمليات زي ما هم، والـ Worker (inventory-audit-updater-worker) ما اتلمسش. الدخول مرة واحدة من هنا، ومفيش شاشة دخول ولا خروج تلقائي في الصفحة.WORKER_SECRET على inventory-audit-updater-worker يتحط بقيمة مجموعة warehouse_ops + Promote — كان له سر خاص. من غيره الصفحة بتفتح وكل نداء فيها بيرجّع 401 (وحارس النسخة والفحص الذاتي بيقولوا).?next= كان [a-z]+\.html فبيرفض Order-Printer.html وأخواتها (حروف كبيرة وشرطة) من v1.36.0. اتصلّح، وبقى بيرجّعك لصفحتك./ ← SKU. الأرقام القصيرة مفيهاش تخمين (الوضع المثبّت هو اللي بيحكم)، والكشف مقفول لو الوضع المثبّت بوسطة أو SKU.Order-Printer.html · Orders-Packing-Checker.html · Order-Item-Remover.html · Order-SKU-Barcode-Printer.html (§5.2 في ecommoda-constants). الروابط القديمة (print.html · pack.html · remove.html · sku-barcode.html) بتدّي 404 بلا إعادة توجيه..woc-loadbox في shared/shell.css وwocLoadingHTML في shared/shell.js.warehouse-operations-center-worker) — مش عبر Worker التغليف زي ما كان. نفس الشكل اللي «مركز عمليات الشحن والتحصيل» شغّال بيه من الأول: أداة = Worker واحد + HTML واحد + ريبو واحد (قرار ٨ في ecommoda-tool-migration-playbook).check_employee/register_pin/verify_employee/log_logout/get_employees من هناك. السبب: أكبر Worker شغل في المخزن كان بيتحكم في أهم نقطة في الهب، وأي مشكلة أو Promote ناقص فيه كان بيقفل باب الدخول كله معاه.appId خالص — اسم الأداة (warehouse_ops_center) متحدّد في كوده مباشرة، بدل ما يوصل من العميل.warehouse_ops الحالية — نفس سر التخزين المحلي (warehouse_ops_worker_secret) بلا أي مفتاح جديد.pack.min زي ما هو.THROTTLED/Failed to fetch) حتى في أدوات ما اتلمستش. دلوقتي فيه فاصل بسيط بين إطلاق كل طابور والتاني.Returned/Cancelled) بتتراكم — فالسقف كان بيتضرب من أول يوم والطابور بيقول رقم أقل من الحقيقة.order.updatedAt — كانوا تقريب بيتقري تسجيل، والترتيب بقى بالأقدم تغليفًا.custom.package_whereabouts_s1/_s2 بقيمة Warehouse.Returned أو Cancelled (S1 أو S2) · اتغلّف فعلاً · وعهدة الطرد لسه مش Warehouse. ⚠️ والرقم بيعدّ آخر ٣٠ يوم بس.returned.html لـbosta-returned.html. ⚠️ الرابط القديم ما بقاش شغّال — حدّث أي بوكمارك على أجهزة المخزن.Returned في أداة تحديث الحالة، وهي نفس الحالة اللي الأداة بتكتبها على شوبيفاي. ⚠️ الأحمر ما ضاعش: اتنقل جوّه الصفحة لنافذة التأكيد وزرار التنفيذ وصفوف الرفض.Bosta_Uploaded_S1 · Bosta_Uploaded_S2) — فأوردر اترفعت شحنته الأصلية بس مش بيتعدّ في صف S2.Bosta-Orders-Shipped-Scanner.html نفسها بدل الشاشة الفاضية. بيعدّ الأوردرات اللي الطرد بتاعها موجود على الرف فعلاً: مندوبه بوسطة · اتطبع واتغلّف · ووقت التغليف بعد وقت الطباعة.custom.courier) مش على الزون. فيه ١٤٩ أوردر على المتجر زونهم «قاهرة+جيزة» وبيروحوا مع بوسطة عادي — الفلترة بالزون كانت هتسقّطهم من الطابور في صمت والموظف واقف ماسك الطرد.shipped.html لـbosta-shipped.html. ⚠️ الرابط القديم ما بقاش شغّال — حدّث أي بوكمارك على أجهزة المخزن.shipped.html (تسليم لبوسطة) وreturned.html (استلام راجع). الموظف بيدخل مرة واحدة وبيتنقّل بينهم وبين الطباعة والتغليف من غير ما يدخل تاني. مربعاتهم في قسم «أدوات» في صف تاني — أخضر للشحن وأحمر للمرتجعات، لأنهم بيعملوا عكس بعض.warehouse_ops بالظبط، من غير أي حقل جديد في الإعدادات.WOC_API_TIMEOUT_MS). من غيرها الـ Worker الواقف كان بيسيب الزرار معطّل والشاشة بتلف للأبد، والموظف بيعمل refresh وسط عملية كتابة.playBeep('scan') كانت بتطلّع نغمة الفشل. الـ shell كان فيه فرعان بس (warn · success) والـ else بيرد على أي قيمة تانية بالنغمة النازلة — يعني الموظف اللي بيسكن ٨٢ ملصق وراه كان بيسمع «فشل» ٨٢ مرة على شغل تمام، وصفر خطأ في الكونسول. بقى فيه فرع صريح لكل نغمة.checks — كائن بندوده كائنات جوّاها ok (سكانر المرتجعات). قبل كده الفحص الفاشل كان بيتعرض ℹ️ «معلومة» بجسم JSON خام، يعني صلاحية ناقصة بتبان زي أي سطر عادي. وبقى بيعرض سطر «إزاي تصلّحها» (hint) تحت الفحص الفاشل بس.09-09-2026 - 11.51 - عدد 3 - بوسطة للفاتورة وللبوليصة.barcode.min بقى 1.2.0 — Promote مطلوب لـ order-sku-barcode-printer-worker v1.2.0 (السجل + [[d1_databases]]).shared/shell.js §COURIER-GROUP — نسخة واحدة للرئيسية ولصفحة التغليف، فمستحيل الرئيسية تقول رقم والصفحة تفتح على رقم تاني.visibility:hidden كان بيخفي باقي الصفحة وبيسيبها واخدة مكانها في التخطيط، وmin-height:100vh على الـ body كان بيزوّد صفحة كمان.barcode.min بقى 1.1.0 — Promote مطلوب لـ order-sku-barcode-printer-worker v1.1.0 (البحث بالـ id).«عطلان» — قيمة مش موجودة في خيارات الميتافيلد على شوبيفاي، فكل حذف كان بيشيل البند ويفشل في كتابة الحالة/السبب. بقت «المنتج غير متوفر».order-item-remover-worker: القيم بتتفحص مقابل تعريف الميتافيلد قبل أي كتابة، وأي قيمة مرفوضة = إلغاء العملية بالكامل والأوردر ما بيتلمسش.remover.min بقى 1.4.0 — Promote مطلوب لـ order-item-remover-worker v1.4.0.Ready. الموظف كان بيشوف «لا توجد أوردرات تطابق الفلاتر» وتوست بيقول إن الجدول اتفلتر عليه، والحل الوحيد كان إن حد يرجّع الحالة يدوي.Ready بيفضل Ready. اللي بيتحدّث: التاج + ميتافيلد وقت الطباعة بالوقت الجديد + صف جديد في السجل باسم الموظف. ⏱️ الثمن المُعلَن: عمود «الوقت منذ الطباعة» في طابور التغليف بيرجع لأول اليوم.status_2_r_e ∈ {Confirmed + RETURN, Confirmed + EXCHANGE} بس، فأوردر S2 حالته Ready كان هيتقري S1 — والنوع ده بيختار البنود نفسها، وبعدين بيتبعت لـ /track اللي بيكتب على ماكينة S1. النوع بقى بيتبعت صريح في مسار إعادة الطباعة بس.printer.min بقى 2.4.0. من غيره كارت إعادة الطباعة بيقول بالنص إن النسخة أقدم، وباقي الصفحة شغّال عادي.order-sku-barcode-printer-worker انضم لمجموعة السر warehouse_ops — نفس حقل السر بيخدم الأربعة.placeholder (Step 2 بند ٧) والشرح بقى سطر ثابت تحته.switchMainTab وكل §LOG-JS كانوا موجودين بالكامل بس مفيش أي زرار بينادي عليهم، فالتاب كان مستحيل يتفتح. واتضاف كمان تعبئة فلتر الموظف من get_employees — كانت أثر جانبي لشاشة الدخول اللي اتشالت من الصفحة.agoInfo) اتنقل لـ shared/shell.js — كان نسخة في الشاشة الرئيسية لوحدها.2.3.0.sessionStorage — الريفريش مابيطلّعش، وقفل التاب بيطلّع.warehouse_ops_center مش اسم أداة.