# طباعة باركود SKU للأوردر — Order SKU Barcode Printer

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