Order-SKU-Barcode-Printer

# طباعة باركود SKU للأوردر — Order SKU Barcode Printer ![version](https://img.shields.io/badge/version-v1.3.0-blue) Worker بيرجّع بيانات الباركود لطباعة ليبل **٢×١ إنش** لكل صنف: نص الـ SKU فوق، وتحته باركود `CODE128` بيشفّر **رقم الـ Barcode** المسجّل على المتغيّر في شوبيفاي — مطابق لتيمبلت «Retail Force Barcode» اللي المخزن شغّال بيه. > 🔴 **الواجهة مش في الريبو ده.** هي صفحة `sku-barcode.html` جوّه هب > [مركز عمليات المخزن](https://ecommoda-dev.github.io/Warehouse-Operations-Center/sku-barcode.html). > الريبو ده فيه **الـ Worker بس**. ## المحتويات | الملف | إيه ده | |---|---| | `index.js` | الـ Worker — `get_order` · `search_sku` · **`log_print`** · **`get_logs*`** · `get_config` · `diag` | | `wrangler.toml` | إعداد النشر — `[vars]` والاسم المطابق للداشبورد | | `CLAUDE.md` | المرجع الكامل: الانحرافات المعتمدة · الفخاخ · النشر · بصمة المهارات | | `1.html` | ⚠️ **نموذج أولي متجمّد — ممنوع يتعدّل** (شرحه تحت) | ## بيعمل إيه | الـ action | بيعمل إيه | |---|---| | `get_order` | بنود الأوردر الفعّالة: SKU · barcode · كمية · صورة · `orderId` — بـ `order=` (الاسم) أو `id=` (الـ ID الرقمي) | | `search_sku` | بحث في متغيّرات المنتجات بـ SKU أو رقم باركود — **من غير أوردر**. ✅ رجع ليه مستهلك في هب v1.14.0 (مربع «طباعة بالـ SKU») | | **`log_print`** | **POST** — يسجّل دفعة الطباعة في D1: صف لكل أوردر، وصف لكل صنف بدون أوردر | | **`get_logs*`** | تاب سجل العمليات في الهب — عرض (١٠٠/صفحة) · عدّ · تصدير XLSX | | `get_config` | نسخة الـ Worker — الهب بيقارنها بالحد الأدنى | | `diag` | فحص ذاتي: المتغيّرات · بصمة السر · OAuth · الصلاحيات | ## صفر كتابة على شوبيفاي — والسجل بقى موجود **صفر ميوتيشن على شوبيفاي · صفر تعديل على أي بيانات قائمة.** الأداة بتقرا من شوبيفاي وبس، والطباعة بتحصل على ورق مش على البيانات. **اللي اتغيّر في v1.3.0:** `search_sku` و`get_order` بقوا بيرجّعوا `productId` (لبناء رابط صفحة المتغيّر في الأدمن) و`available` (المخزون المتاح من `inventoryQuantity`). ⚠️ `available` تحت صلاحية **`read_inventory`** — ولو ناقصة، الاستعلام بيرجع لنسخة لينة و**البحث بيفضل شغّال** والكمية بترجع `null`. `?action=diag` بيقول الغياب بالاسم. **اللي اتغيّر في v1.2.1:** إصلاح `search_sku` — الاستعلام كان بيبعت مدخل الموظف لشوبيفاي زي ما هو، وبحث شوبيفاي بيقسّم `SD1 / Light grey / 45` لكلمات منفصلة فبيرجّع **صفر نتايج بلا أي خطأ** على SKU موجود. دلوقتي كل كلمة بقت شرط `sku:` بادئة لوحدها والشروط بـ `AND`. التفاصيل في `CLAUDE.md` §`search_sku`. **اللي اتغيّر في v1.2.0:** الأداة بقت بتكتب **صف سجل append-only في D1** لكل عملية طباعة: ``` tool : order_sku_barcode_printer type : print ← باركود-SKU لأوردر (صف لكل أوردر في الدفعة) print_sku ← باركود-SKU بدون أوردر (صف لكل صنف) ``` ده بيقفل الثمن اللي كان مكتوب هنا قبل كده: «مفيش أي أثر لمين طبع إيه وإمتى». القرار وتفاصيله في `CLAUDE.md` §الانحراف المعتمد الباقي. > 🔴 القيمة دي **لسه ما اتسجّلتش في `ecommoda-constants` §7** — بند مفتوح في > `CLAUDE.md`. ## السر عضو في مجموعة **`warehouse_ops`** — `WORKER_SECRET` **نفس قيمة** الطباعة والتغليف وحذف المنتج، عشان الهب يقرا سر واحد من حقل إعدادات واحد. ## `1.html` — النموذج الأولي الملف ده هو التجربة السريعة الأولى (رُفعت يدويًا على الداشبورد بدون ربط). **متساب للرجوع التاريخي وبس:** - بيقرا مفتاح سر قديم (`order_sku_barcode_printer_worker_secret`) — يعني **هيبطل يشتغل** أول ما الـ Worker ياخد سر مجموعة `warehouse_ops`. - مفيش فيه دخول، ولا هيدر موحّد، ولا حارس نسخة، ولا About — الواجهة الحقيقية في الهب بكل ده. - ⛔ **أي تعديل عليه ممنوع** — نسختين من نفس المنطق هيفترقوا مع أول تصليح، وده بالظبط باج R1. --- آخر تحديث: 08-09-2026 — v1.3.0