📦 جاي من طابور التغليف
ℹ️ عن باركود SKU
الصفحة بتعمل إيه

بتطبع ملصق باركود-SKU مقاس 2×1 إنش لكل صنف — نص الـ SKU فوق، وتحته باركود CODE128 بيشفّر رقم الـ Barcode المسجّل على المتغيّر في شوبيفاي. سطران وبس من v1.15.0: سطر رقم الأوردر اتشال، والخط بقى grotesque محايد بدل السيريف.

مين بيستخدمها

المخزن — عند تجهيز دفعة أوردرات، أو لما باركود-SKU يقع أو يتمسح.

إزاي بتشتغل

  1. تسكن أو تكتب أوردر ورا التاني من أي مربع من الأربعة — كلهم بيضيفوا لنفس الدفعة.
  2. كل أوردر بيتعرض في مجموعة لوحده جوّه جدول واحد، وعدد النسخ بيتملّي بكمية كل بند. الـ بادجان فوق بيقولوا عدد الأوردرات وعدد الأصناف المعروضة.
  3. تظبط عدد النسخ لو محتاج (أو تحذف صنف بـ ✕ جنب الخانة)، وتضغط طباعة الباركود — الدفعة كلها بتطلع في ملف واحد، مرتّبة مجموعة ورا مجموعة.
  4. بعد الطباعة الدفعة بتتمسح لوحدها والصفحة بتبدأ من جديد. ⚠️ المتصفح مابيقولش لو الطباعة اتلغت — الإلغاء بيمسح الدفعة برضه.
  5. المعاينة على الشاشة هي نفس عناصر الطباعة بالظبط — مش نسخة منفصلة، فاللي بتشوفه هو اللي هيطلع.

المداخل الأربعة

المربعبياخد إيهبيوصل إزاي
🔫 شوبيفايباركود الأوردرget_order?id= لو الرقم ID (١٠ خانات فأكتر)، وإلا ?order=
🚚 بوسطةتراكينج بوسطةWorker التغليف بيحوّله لرقم أوردر، وبعدين نفس مسار الباركود
⌨️ يدويرقم أوردر أو أكترget_order?order= لكل رقم، بحد تزامن ٣
SKUالـ SKU نفسه (بدون أوردر)search_sku?term= — التطابق التام بيتضاف على طول، والجزئي بيطلّع قايمة اختيار

الـ Endpoints

actionالـ Workerبيعمل إيه
get_orderباركود SKUبنود الأوردر الفعّالة + SKU وباركود وكمية كل بند (بالاسم أو بالـ id)
search_skuباركود SKUمتغيّرات المنتجات بالـ SKU — رجع ليه مستهلك في v1.15.0
log_printباركود SKUPOST — بيسجّل الدفعة في D1: صف لكل أوردر، وصف لكل صنف بدون أوردر
get_logs*باركود SKUتاب سجل العمليات — عرض · عدّ · تصدير
get_order?tracking=التغليفتراكينج بوسطة → رقم أوردر. قراءة بحتة، والمستخدم من الرد هو الاسم بس
get_employeesالتغليففلتر الموظف في تاب السجل — Worker الباركود مالوش نقطة دخول بقرار
get_configالاتنيننسخة الـ Worker — حارس النسخة بيقارنها بالحد الأدنى
diagالاتنينفحص ذاتي: المتغيّرات · بصمة السر · D1 · صلاحيات شوبيفاي
🔧 تشريح الكود

FEATURE MAP

  • §TABS — تاب الطباعة + تاب سجل العمليات
  • §TOOL::entry — شريط إدخال واحد + أربع chips بأربع ألوان (شوبيفاي · بوسطة · يدوي · SKU)
  • §TOOL::results — بادجان + زرار الطباعة + جدول مجموعات + المعاينة
  • §TOOL-JS::bcAddOrder — المسار الوحيد لإضافة أوردر للدفعة
  • §TOOL-JS::sku — search_sku → مجموعة «بدون أوردر»
  • §SKU-AC — القايمة المنسدلة اللي بتفتح وانت بتكتب + التحديد المتعدد
  • §TOOL-JS::bcResolveTracking — تراكينج بوسطة → اسم أوردر (Worker التغليف)
  • §SCAN — حقل واحد: مهلة السكانر (شوبيفاي · بوسطة) + كشف تلقائي محدود + lastEntryMode (الوضع المثبّت)
  • §LIGHTBOX — صورة المنتج بالحجم الكامل
  • §LABEL-MACHINE (CSS + JS · فيها §LABEL-JS) — ماكينة الليبل: بناء عنصر الباركود-SKU + ضبط حجم خط الـ SKU + bcRenderLabels + bcFirePrint. 🔴 نسخة مكرّرة عن قصد — التوأم في Orders-Packing-Checker.html (زرار «باركود المنتجات» في شاشة التغليف)، والكتلتان متطابقتان بايت ببايت؛ أي تعديل يتعمل في الاتنين في نفس التمريرة، والتحقق بـbash docs/label-twin-check.sh
  • §PRINT-JS — بناء الدفعة والمعاينة وwindow.print() + التسجيل + المسح التلقائي
  • §LOG-JS — سجل العمليات (فلاتر · جدول · تصفيح · تصدير XLSX)

KEY VARIABLES

  • PAGE_WORKERS = ['barcode', 'pack'] — التغليف للتراكينج وقايمة الموظفين
  • BC_LABEL_MAX_W_IN = 1.8 — عرض المحتوى جوّه ملصق ٢ إنش (بعد الحشو)
  • BC_ADD_CONCURRENCY = 3 — حد تزامن الإدخال اليدوي المتعدد (درس R15)
  • BC_SKU_KEY = '__sku__' — مفتاح مجموعة «بدون أوردر» المحجوز
  • bcOrders — مصدر الرسم والطباعة الوحيد، بيتملّي من الأربع مداخل
  • bcFailed — الأوردرات اللي فشلت، معروضة بأسمائها في بانر أحمر
  • bcPendingClear — راية المسح التلقائي بعد afterprint
  • التخزين المحلي: warehouse_ops_worker_secret بس (مفتاح المجموعة)

NOTES / QUIRKS

  • 🔴 الباركود بيشفّر barcode مش sku. النص اللي فوق هو الـ SKU، والرقم اللي جوّه الخطوط هو الـ Barcode — الاتنين مختلفين، وعكسهم بيخلّي السكانر يقرا رقم مالوش وجود.
  • 🔴 صنف بلا باركود مابيتطبعش — خانة النسخ بتتقفل على صفر و«⚠️ مفيش Barcode» بيتكتب تحت الـ SKU. عمود الـ Barcode نفسه اتشال في v1.15.0، بس غيابه فضل بيتقال — ده اللي بيقول إن الصنف ده مش هيتطبع خالص. الحل على شوبيفاي مش هنا.
  • 🔴 سطر رقم الأوردر اتشال من الملصق (v1.15.0). الثمن: الرابط الوحيد بين باركود-SKU وأوردره بقى ترتيب الخروج من الطابعة (مجموعة ورا مجموعة، زي الشاشة بالحرف). ⛔ الترتيب ده ممنوع يتغيّر، وفيه بند في فحص المتصفح بيقفله.
  • 🔴 الدفعة بتتمسح تلقائيًا بعد الطباعة — والمتصفح مابيقولش لو الموظف لغى الطباعة: afterprint بيتطلّق في الحالتين. الإلغاء بيمسح الدفعة برضه. اللي بيخفّف ده: التوست بيقول إن المسح حصل، وصف D1 بيتكتب قبل الطباعة فالأثر مش بيضيع.
  • ⚠️ مجموعة «بدون أوردر» مش محسوبة في بادج الأوردرات — عدّها كأوردر معناه بادج بيقول ٣ وجدول فيه أوردرين.
  • 🔴 الطباعة بتخفي باقي الصفحة بـ display:none مش visibility:hidden. التاني بيسيب العناصر واخدة مكانها في التخطيط، ومع ورقة ٢ إنش عرض ده كان بيولّد عشرات الصفحات البيضا ورا الليبلات (٥ ليبل = ملف ٣٧ صفحة). اتصلح في v1.10.0.
  • 🔴 ارتفاع الملصق مقفول على ١ إنش — ٦٢.٨px مقيسة من ٧٦.٨px متاحين بعد الحشو. أي زيادة في ارتفاع الباركود أو في حجم أي سطر بتقص في صمت (overflow:hidden) — والقص بياكل من خطوط الباركود نفسها.
  • 🔴 تحويل تراكينج بوسطة بيحصل في Worker التغليف — مش هنا ومش في Worker الباركود. §BOSTA في ريبوهين بالفعل، ونسخة تالتة كانت هتخلّيهم تلاتة يفترقوا مع أول إصلاح.
  • ⚠️ باركود الأوردر بيشفّر الـ ID الرقمي (١٠ خانات فأكتر) مش اسم الأوردر (٥ خانات) — عشان كده الصفحة بتبعت id= والـ Worker بيستخدم الجذر order(id:). محتاج Worker باركود v1.1.0.
  • ⚠️ الأوردر المكرّر بيترفض — الفحص بيحصل مرتين: على المدخل قبل النداء (بيوفّر استعلام) وعلى الاسم اللي رجع (لأن الـ ID مالوش اسم قبل الجلب).
  • ⚠️ قياس عرض النص بـ Canvas مش scrollWidth. #printArea عليه display:none طول الوقت، فأي قياس معتمد على الـ layout بيرجّع صفر دايمًا والحلقة بتوهم إنها شغالة وهي واقفة من أول لفة.
  • ⚠️ requestAnimationFrame مزدوجة قبل الطباعة — الـ SVG بيتضاف ديناميكيًا، والطباعة من غير انتظار رسم فعلي بتطلّع ورق بلا باركود.
  • ⚠️ currentQuantity مش quantity — التانية بتشمل البنود الملغية، يعني باركود-SKU لصنف اتشال من الأوردر.
  • ⚠️ الصورة بترجع من المتغيّر أولاً وبعدين المنتج — أغلب المتغيّرات مالهاش صورة خاصة بيها، فمن غير الرجوع للمنتج العمود بيفضل فاضي دايمًا.
  • 🔴 الصفحة بقت بتكتب في D1 من v1.15.0 (Worker v1.2.0) — الانحراف القديم («قراءة بحتة، مفيش أثر لمين طبع إيه») اتقفل بقرار أحمد 08-09-2026. الصف بيتكتب تحت order_sku_barcode_printer بـ print (باركود-SKU لأوردر) أو print_sku (باركود-SKU بدون أوردر). ⚠️ لسه صفر كتابة على شوبيفاي.
  • 🔴 فشل التسجيل مايمنعش الطباعة أبدًا — توست أصفر والورق بيطلع. حارس بيمنع الشغل بيتشال بعد أسبوع.
📋 سجل التغييرات
v1.38.2 13-10-2026
  • تحسين🎛️ شريط إدخال «باركود SKU» بقى شريط مقسّم واحد: الأربع أوضاع (فاتورة شوبيفاي · بوليصة بوسطة · رقم الأوردر · SKU المنتج) متلاصقين، والوضع الفعّال مصمت بلونه. حقل الإدخال أقصر (٥٢px) والـ pill (سكانر / كتابة يدوي) في أقصى الشمال فوق زرار الإضافة. واجهة بحتة.
v1.38.1 13-10-2026
  • جديد🔫⌨️ pill إرشادي في شريط الإدخال «باركود SKU»: في آخر صف الـ chips، بلون الوضع الفعّال — «سكانر» (فاتورة شوبيفاي / بوليصة بوسطة) · «كتابة الرقم يدوي» (رقم الأوردر) · «اكتب الـ SKU يدوي» (SKU المنتج). أيقونة SVG بحجم ٢٠px. واجهة بحتة.
v1.38.0 13-10-2026
  • تغيير🏷 أسماء الـ chips بقت بلغة الشغل: «فاتورة شوبيفاي» · «بوليصة بوسطة» · «رقم الأوردر» · «SKU المنتج (بدون أوردر)». وعنوان القسم اتشال — الشريط compact.
  • تغييرقايمة نتايج الـ SKU: الـ SKU جنب الصورة، والمقاس في مربع أزرق، والمتاح برقم أكبر (أخضر/أحمر).
v1.37.0 13-10-2026
  • تغيير🏷 شريط إدخال واحد بدل أربع كروت: chips (شوبيفاي · بوسطة · يدوي · SKU) وحقل واحد — الارتفاع من ~٣٩٠px لـ ~١٤٠px، فأول أوردر في الجدول باين في أول شاشة.
  • جديدكشف تلقائي محدود: ١٠ خانات فأكتر ← شوبيفاي · حروف أو / ← SKU. الأرقام القصيرة بالوضع المثبّت، والكشف مقفول في بوسطة وSKU.
v1.27.0 16-09-2026
  • جديد🏷️ بقى ينفع تطبع باركود منتجات الأوردر من «قسم التغليف» على طول — زرار جوّه شاشة التغليف بيطلّع نفس الليبل بالظبط من غير ما تفتح الأداة دي. الأداة دي لسه هي المكان الوحيد للدفعات وتعديل الأعداد والبحث بالـ SKU والسجل.
  • ملاحظةشكل الليبل ما اتغيّرش ولا مليمتر — نفس المقاس ونفس الخط ونفس الباركود.
v1.19.0 09-09-2026
  • تغيير🔴 ترتيب الجدول بقى الأحدث فوق — الأوردر (أو الصنف) اللي لسه اتضاف بيبقى أول مجموعة، مش آخر واحدة. قبل كده بعد رابع أوردر كان لازم تنزّل عشان تتأكد إن اللي في إيدك اتضاف. ⚠️ وورق الطباعة بنفس الترتيب — الشاشة والطابعة مصدرهم واحد.
  • تغيير«تحديد الكل» و«إضافة المحدد» بقوا فوق نتايج البحث — ملزوقين تحت مربع الـ SKU بدل آخر القايمة. كنت بتحدّد فوق وتنزّل تدوّر على الزرار في آخر ٥٠ نتيجة.
  • إصلاح🔴 الضغط على ✕ ما بقاش يرمي الشاشة لفوق. الاستبعاد كان بيرجّع الفوكس لمربع الإدخال، فالصفحة بتتزحلق لفوق والصف اللي لسه استبعدته بيختفي من قدامك — وده كان بيتكرّر مع كل ضغطة.
v1.17.0 08-09-2026
  • جديد🔴 تحديد متعدد في قايمة نتايج البحث — مربع اختيار لكل صنف + «تحديد الكل» + «إضافة المحدد (N)». البحث الجزئي بيرجّع كل الألوان والمقاسات، والإضافة واحد واحد كانت بتقفل القايمة وتخلّي الموظف يعيد نفس البحث لكل مقاس.
  • جديد🔴 الـ SKU بقى لينك لصفحة المتغيّر على شوبيفاي — في الجدول وفي القايمة. الحالة: صنف مكتوب جنبه «مفيش Barcode» والحل على شوبيفاي مش هنا.
  • تغيير🔴 كمية الصنف بدون أوردر = المتاح على شوبيفاي (كانت ١ ثابتة) — وعدد الطباعة بيتبعها زي صفوف الأوردر بالظبط. ⚠️ الصفر أو غير المعروف بيخلّي عدد الطباعة ١: الحالة اللي المدخل ده اتعمل عشانها (قطعة راجعة) مخزونها صفر غالبًا، وصفر في خانة الطباعة معناه ورق فاضي. (Worker 1.3.0)
  • تغييرصف نتيجة البحث بقى الـ SKU وبس بخط كبير — اسم المنتج ورقم الباركود اتشالوا (الاسم بيلفّ ويقلّل النتايج الظاهرة، والباركود محدش بيقارنه على الشاشة). و«مفيش Barcode» فضل — ده اللي بيقول إن الصنف مش هيتطبع.
  • تغيير«بيدوّر على…» بقت «جاري البحث عن…» · وكلمة «ليبل» اتشالت من سجل التغييرات كمان.
v1.16.0 08-09-2026
  • إصلاح🔴 البحث بالـ SKU كان بيرجّع «مفيش أي صنف» على صنف موجود. الـ Worker كان بيبعت المدخل لشوبيفاي زي ما هو، وبحث شوبيفاي بيقسّم SD1 / Light grey / 45 لكلمات منفصلة — فالنتيجة صفر بلا أي خطأ. بقى كل كلمة شرط بادئة لوحدها والشروط بـ AND (Worker 1.2.1).
  • جديدقايمة الاقتراحات بتفتح وانت بتكتب — من غير ما تدوس «بحث». والمودال اللي كان بيغطّي الجدول اتحوّل لقايمة منسدلة تحت المربع نفسه.
  • تغيير🔴 زرار ✕ بقى «استبعاد» مش «حذف» — بيشطب الصنف وبيصفّر عدد الطباعة وبيسيبه معروض، والضغطة التانية بترجّعه. الحذف من العرض كان بيخلّي الاستبعاد غير مرئي، والموظف مايفرقش بين «مش عايزه» و«الجلب ما رجّعوش».
  • تغييرمربع «طباعة بالـ SKU» بقى صف لوحده بعرض الصفحة تحت التلات مربعات — نوعه مختلف (بيضيف صنف مش أوردر)، والتخطيط بيقول الفرق ده.
  • تغييرخلايا الجدول كلها بقت متوسّطة بخطوط رأسية خفيفة — المعيار الموحّد لجداول الستاك (زي جدول تاب السجل).
  • تغييرصف المجموعة بقى رقم الأوردر وبس — بادج تراكينج بوسطة وعدّاد «N صنف» اتشالوا.
  • تغييرالمربعات بقت بلا placeholder وبلا سطر شرح — العنوان واللون هما التعريف. وكلمة «ليبل» بقت «باركود-SKU» في كل الواجهة.
v1.15.0 08-09-2026
  • جديدتاب «📜 سجل العمليات» — كل ضغطة طباعة بتتسجّل في D1 بصف لكل أوردر (وصف لكل صنف في اللي بدون أوردر): مين طبع، وإمتى، وكام باركود-SKU. بفلاتر وتصفيح وتصدير XLSX.
  • جديدمدخل رابع: طباعة بالـ SKU من غير أوردر — تكتب الـ SKU زي ما هو على شوبيفاي (RN-AD-115 / Black / 45). التطابق التام بيتضاف على طول، والجزئي بيطلّع قايمة اختيار.
  • جديدالضغط على صورة المنتج بيفتحها بالحجم الكامل — ٤٤px مش كفاية للتفرقة بين لونين.
  • تغيير🔴 ملصق الباركود-SKU بقى سطرين: رقم الأوردر تحت الخطوط اتشال، والميزانية اللي اتفضّت راحت لارتفاع الخطوط (٣٤ → ٤٠px). ⚠️ يعني الرابط الوحيد بين الملصق وأوردره بقى ترتيب الخروج من الطابعة.
  • تغييرخط الملصق بقى grotesque محايد (Arial/Helvetica) بدل Georgia — أوضح على الطابعة الحرارية عند المقاسات الصغيرة، وستاك نظام مش خط من الشبكة.
  • تغييرزرار الطباعة اتنقل فوق مكان «مسح الدفعة»، والدفعة بتتمسح تلقائيًا بعد الطباعة. ⚠️ المتصفح مابيقولش لو الطباعة اتلغت — الإلغاء بيمسح الدفعة برضه، والتوست بيقول إن المسح حصل.
  • تغيير«نسخة لكل صنف» و«بالكمية» و«مسح الدفعة» اتشالوا — الافتراضي (كمية البند) هو المستخدم فعليًا، والخانة بتصلّح صف بصف.
  • تغييرزرار حذف ✕ لكل صنف جنب خانة عدد الطباعة، بدل «شيل من الدفعة» اللي كان بيشيل الأوردر بأصنافه كلها.
  • تغييرشريط الدفعة بقى بادجين كبار (عدد الأوردرات · عدد الأصناف) بدل سطر نص، وشيلات أرقام الأوردرات اتشالت — الجدول تحتها بيقول نفس الكلام.
  • تغييرعمود «المنتج» وعمود «Barcode» اتشالوا من الجدول. ⚠️ «مفيش Barcode» فضل معروض تحت الـ SKU — ده بيقول إن الصنف مش هيتطبع خالص.
  • تغييربادجات PENDING/UNFULFILLED اتشالت — مالهاش أي أثر على قرار طباعة باركود-SKU. بادج تراكينج بوسطة فضل (ده المدخل اللي الموظف سكنه).
  • تغييركارت «اسكن باركود الأوردر…» اتشال — المداخل فوق بتقول نفس الكلام جنب المربع نفسه.
  • إصلاحالأوردر اللي فشل جلبه لسه معروض باسمه — اتنقل من شيلة لبانر أحمر تحته سببه. ⛔ عمره ما هيتحوّل لتوست بيختفي لوحده.
  • تغيير🔴 barcode.min بقى 1.2.0 — Promote مطلوب لـ order-sku-barcode-printer-worker v1.2.0. من غيره تاب السجل بيرجّع «action غير معروف» والطباعة بتشتغل من غير أي أثر في D1.
v1.10.0 07-09-2026
  • جديددفعة أوردرات في صفحة باركود SKU — تسكن أو تكتب أوردر ورا التاني، وأصناف الدفعة كلها بتتطبع في ملف واحد مرتّبة أوردر ورا أوردر.
  • جديدتلات مداخل زي قسم التغليف: ماسح باركود شوبيفاي (أزرق) · ماسح باركود بوسطة (أحمر) · إدخال يدوي (بيقبل أكتر من رقم مرة واحدة).
  • جديدرقم الأوردر بقى مطبوع على الملصق بخط صغير تحت الباركود — الدفعة بتطلع مكوّمة من الطابعة، ومن غير الرقم الملصق مالوش صاحب.
  • إصلاح🔴 الصفحات البيضا في نافذة الطباعة. ٥ ملصقات كانوا بيطلعوا ملف ٣٧ صفحة، ٣٢ منهم بيضا: visibility:hidden كان بيخفي باقي الصفحة وبيسيبها واخدة مكانها في التخطيط، وعلى ورقة ٢×١ إنش كان بيتقسّم لعشرات الصفحات. بقى display:none.
  • تغييرمربع البحث بـ SKU/باركود اتشال — الدخول بقى بالأوردر بس. search_sku لسه في الـ Worker بس الصفحة مابتنادّيهوش.
  • تغييرالأوردر الفاشل بيفضل معروض باسمه في شريط الدفعة بالأحمر بدل توست بيختفي، والأوردر المكرّر بيترفض.
  • تنبيهمحتاج Worker باركود v1.1.0 (البحث بالـ id — باركود الأوردر بيشفّر الـ ID الرقمي)، وWorker تغليف v2.5.0 لمربع بوسطة.
v1.6.0 06-09-2026
  • جديدصفحة 🏷️ باركود SKU — طباعة ملصق باركود-SKU ٢×١ إنش لأصناف أوردر، أو بالبحث المباشر بـ SKU/باركود من غير أوردر.
  • جديدorder-sku-barcode-printer-worker انضم لمجموعة السر warehouse_ops — نفس حقل السر في الإعدادات بيخدم الأربعة.
v1.5.1 06-09-2026
  • إصلاحتاب «📜 سجل العمليات» في صفحة حذف منتج بقى موجود. شريط التابات كان ناقص من الـ HTML — البانل وswitchMainTab وكل §LOG-JS كانوا موجودين بالكامل بس مفيش أي زرار بينادي عليهم.
v1.5.0 06-09-2026
  • جديدصفحة 📊 إحصائيات المخزن — أرقام الفترة · جدول الموظفين · توزيع ساعات الشغل · مؤشرات الجودة.
  • إصلاحسلّم «آخر تحديث» (agoInfo) اتنقل لـ shared/shell.js.
v1.4.0 06-09-2026
  • تغييرلوحة «آخر تحديث» بقت ملزوقة بزرار التحديث في الشاشة الرئيسية وبنفس شكلها في صفحة التغليف.
v1.3.0 06-09-2026
  • تغييرطوابير الشاشة الرئيسية بقت صفوف بعرض الشاشة بدل كروت جنب بعض.
v1.2.0 06-09-2026
  • تغييرزرار 🏠 الرئيسية بقى مصمت أزرق وفي نص الهيدر، وزرار الموظف بقى «الاسم ✕».
  • جديدالشاشة الرئيسية بقى فيها تحديث تلقائي كل ١٥ دقيقة للأعداد.
v1.1.0 06-09-2026
  • جديدحارس الفاتورة اللاغية في صفحة الطباعة + سطر تاريخ الطباعة في آخر كل فاتورة.
v1.0.0 05-09-2026
  • جديدأول إصدار — دخول واحد وتنقّل بين الطباعة والتغليف وحذف المنتج.