ثبّت Cetara، وشغّله، وعالج أي مشكلة — من صفحة واحدة.
هذا المرجع الموحّد يجمع التثبيت الكامل ومعالجة كل عطل ميداني: أشجار تشخيص خطوة‑بخطوة، معنى كل رسالة خطأ، النسخ والاستعادة، الترخيص، والدعم عن بُعد. مبنيّ مباشرة من منتج Cetara 1.8.0 — كل مسار وأداة ورمز هنا موجود فعلاً في النظام.
مسارات البيانات · Data paths
أول دخول · First login
عند أي بلاغ · On any ticket
التثبيت · Installation
من ويندوز نظيف إلى أول تسجيل دخول. التثبيت لكل‑مستخدم — لا يحتاج صلاحيات مدير ولا يظهر تحذير UAC.
المتطلّبات
- ويندوز 10 أو 11 (64‑بت).
- لا حاجة للإنترنت للتشغيل (يُستحسن فقط لأول تحميل للمثبّت).
- مساحة قرص ~500MB للتطبيق، ومساحة كافية لنموّ قاعدة البيانات والنسخ.
خطوات التثبيت (للعميل)
- شغّل ملف
Cetara-Setup-1.8.0.exe. - اختر مجلّد التثبيت (أو اترك الافتراضي
%LOCALAPPDATA%\Programs\Cetara) ثم أكمل. - يُنشئ المثبّت اختصاراً على سطح المكتب وقائمة ابدأ باسم Cetara.
- يُفتح التطبيق تلقائياً بعد الانتهاء — تظهر شاشة تسجيل الدخول.
%APPDATA%\Cetara. بعض مكافحات الفيروسات تحجُر ملف better-sqlite3.node (محرّك قاعدة البيانات) فيمنع الفتح — هذا أشيع سبب لـ«لا يفتح».أول دخول
- مشرف النظام: اسم المستخدم
adminوكلمة المرور الافتراضيةcetara2024— غيّرها فوراً من الإعدادات. المشرف يفتح سطح المشغّل لإنشاء المتاجر. - صاحب المتجر: يدخل باسم المتجر + اسم المستخدم + كلمة المرور التي أنشأها المشغّل، فيُفتح متجره مباشرة.
- في أول تثبيت لا توجد متاجر بعد — أنشئ أول متجر من سطح المشغّل، أو عبر «معالج الإعداد الأول».
التحديث والإزالة
- تحديث: شغّل مثبّت الإصدار الأحدث فوق القديم — البيانات تبقى. الأفضل: من مركز الدعم نفّذ «فحص التحديث» ثم «تحضير» (لقطة تراجع) أولاً.
- إزالة: من «التطبيقات» في ويندوز أو
Uninstall Cetara.exe. الإزالة لا تحذف بياناتك — مجلّد%APPDATA%\Cetaraيبقى.
Requirements
- Windows 10 or 11 (64‑bit).
- No internet needed to run (only to download the installer once).
- ~500 MB disk for the app, plus room for the database and backups to grow.
Install steps (for a customer)
- Run
Cetara-Setup-1.8.0.exe. - Choose an install folder (or keep the default
%LOCALAPPDATA%\Programs\Cetara) and finish. - It creates a Desktop and Start‑Menu shortcut named Cetara.
- The app opens automatically when done — the Login screen appears.
%APPDATA%\Cetara. Some AV products quarantine better-sqlite3.node (the database engine), which blocks startup — the single most common cause of "won't open."First login
- Platform admin: username
admin, default passwordcetara2024— change it immediately in Settings. The admin opens the Operator panel to create stores. - Store owner: signs in with store + username + password created by the operator, which opens their store directly.
- A brand‑new install has no stores yet — create the first from the Operator panel or the first‑run wizard.
Update & uninstall
- Update: run the newer installer over the old one — data is preserved. Best practice: run "update precheck" then "prepare" (rollback snapshot) from the Support Center first.
- Uninstall: via Windows "Apps" or
Uninstall Cetara.exe. Uninstall keeps your data — the%APPDATA%\Cetarafolder remains.
التشغيل والوصول إلى هذا الدليل · Running & Accessing this Guide
كيف تفتح التطبيق كل يوم — وكيف تصل إلى هذا المرجع نفسه وقت الحاجة.
تشغيل التطبيق
- انقر اختصار Cetara على سطح المكتب أو من قائمة ابدأ.
- نسخة واحدة فقط: النقر المزدوج مرتين لا يفتح نافذتين — يُعيد التركيز إلى النافذة القائمة (حماية مضمّنة تمنع تنازع نسختين على البيانات).
الوصول إلى هذا الدليل لاحقاً
- الملف المحلي (دون إنترنت): افتح
support-center.htmlبأي متصفّح — انقره مزدوجاً. ضعه في مكان سهل (سطح المكتب أو داخل مجلّد التثبيت) لتفتحه في أي وقت. - طباعة / PDF: زر الطباعة أعلى الصفحة ← «حفظ كـ PDF» لنسخة تحملها أو تشاركها مع فريق الدعم.
- رابط خاص: إن نُشِر كصفحة، احتفظ بالرابط في المفضّلة لفتحه من أي جهاز أو هاتف.
- ابحث بسرعة: استخدم مربّع البحث أعلى الصفحة لتصفية الأقسام فوراً (مثلاً: «وردية»، «ترخيص»، رمز خطأ).
Launching the app
- Click the Cetara shortcut on the Desktop or in the Start Menu.
- Single instance: double‑clicking twice never opens two windows — it re‑focuses the running one (built‑in guard against two copies fighting over the data).
Getting back to this guide
- Local file (offline): open
support-center.htmlin any browser — just double‑click it. Keep it somewhere handy (Desktop or the install folder) to open anytime. - Print / PDF: the Print button at the top → "Save as PDF" for a copy to carry or share with your support team.
- Private link: if published as a page, bookmark the URL to open it from any device or phone.
- Search fast: use the search box up top to filter sections instantly (e.g. "shift", "license", an error code).
منهجية الدعم · The Support Method
نفس الدورة لكل بلاغ — تمنع الأخطاء وتبني ثقة العميل.
روتين الفرز — أول دقيقتين
- اسمع العَرَض بدقّة: ماذا كان المستخدم يفعل؟ ما الرسالة الحرفية؟ متى بدأت؟
- افتح «صحة النظام» واقرأ: هل
database.integrity = ok؟ هلdisk.freeكافٍ؟ هل النسخة حديثة (ليستneeded)؟ هلlicense.status = active؟ - صنّف البلاغ: بيانات / ترخيص / قرص / إدخال مستخدم / أداء / تحديث.
- إن كان الجهاز بعيداً: ابدأ جلسة دعم عن بُعد.
Triage routine — the first two minutes
- Hear the symptom precisely: what was the user doing? What is the exact message? When did it start?
- Open System health and read: is
database.integrity = ok? Isdisk.freesufficient? Is the backup recent (notneeded)? Islicense.status = active? - Classify the ticket: data / license / disk / user‑input / performance / update.
- If the machine is remote: start a remote‑support session.
أدواتك — مركز الدعم المدمج · The built‑in Support Center
في سطح المشغّل (للمشرف فقط). كل أداة هنا موجودة فعلاً في المنتج.
kind='error') + سطور app.log.db للقراءة ويفحصها (ok/تالف/خطأ) + عدد الجداولoptimize/ANALYZE/VACUUMforeign_keys=ON + REINDEX/ANALYZE + يحذف نسخاً فارغةpre-update-*.db المتاحةkind='error') + app.log lines.db read‑only and checks it (ok/corrupt/error) + table countoptimize/ANALYZE/VACUUMforeign_keys=ON + REINDEX/ANALYZE + removes empty backupspre-update-*.db snapshotsشجرة القرار العامة · The General Decision Tree
ابدأ من هنا لتوجيه أي بلاغ إلى الشجرة الصحيحة في القسم التالي.
أشجار الأعطال · Troubleshooting Trees
كل شجرة: العَرَض ← السبب ← التشخيص ← الإصلاح ← التحقّق ← الوقاية. انقر لفتحها.
لا يبدأ٦.١ البرنامج لا يبدأ / يُغلق فوراً · App won't start
نقر الاختصار فلا شيء، أو وميض نافذة ثم اختفاء، أو شاشة بيضاء.
حجب مكافح الفيروسات لملف better-sqlite3.node؛ تلف ملف قاعدة البيانات؛ مجلّد بيانات بلا صلاحية كتابة؛ تثبيت ناقص.
- تحقّق من حجر مكافح الفيروسات (سجلّ الحماية).
- تأكّد أن
%APPDATA%\Cetara\data\cetara.dbموجود وحجمه > 0. - اقرأ آخر أسطر سجلّ الأخطاء من مركز الدعم.
- أضِف استثناء مجلّد لمكافح الفيروسات (التثبيت +
%APPDATA%\Cetara) واستعد الملف المحجوز. - إن كان ملف القاعدة تالفاً/صفرياً: استعد أحدث نسخة سليمة من
backups\(تحقّق منها أولاً عبر «تحقّق النسخ»). - إن استمر: أعد تثبيت نفس الإصدار فوق القديم (البيانات تبقى).
يفتح البرنامج، «صحة النظام» = ok، وأول بيع تجريبي ينجح.
جهّز استثناء المجلّد أثناء النشر (خطوة مضاد الفيروسات في قسم التثبيت).
Clicking the shortcut does nothing, a window flashes and vanishes, or a blank screen.
Antivirus blocked better-sqlite3.node; corrupt DB file; data folder without write permission; incomplete install.
- Check AV quarantine (protection history).
- Confirm
%APPDATA%\Cetara\data\cetara.dbexists and size > 0. - Read the last lines of the error log in the Support Center.
- Add an AV folder exclusion (install folder +
%APPDATA%\Cetara) and restore the quarantined file. - If the DB is corrupt/zero: restore the newest healthy backup from
backups\(verify it first). - If it persists: reinstall the same version over the old one (data preserved).
The app opens, System health = ok, one test sale succeeds.
Set up the folder exclusion during deployment (AV step in the Install section).
ترخيص٦.٢ لا يُحفَظ بيع جديد / «للقراءة فقط» · Read‑only
البيع يرفض الحفظ؛ رسالة ترخيص؛ أو المتجر معطّل.
الترخيص انتقل إلى expired/suspended بعد المهلة (grace).
«صحة النظام» ← license.status؛ أو سطح المشغّل ← ترخيص المتجر.
جدّد الاشتراك واضبط تاريخ انتهاء جديد من سطح المشغّل حتى تصبح الحالة active.
أعد فتح المتجر واحفظ بيعاً تجريبياً.
تابع تواريخ انتهاء المتاجر (تنبيه «قريب الانتهاء» في لوحة المشغّل).
The sale refuses to save; a license message; or the store is disabled.
The license moved to expired/suspended past its grace period.
System health → license.status; or Operator panel → store license.
Renew the subscription and set a new expiry from the Operator panel until status is active.
Reopen the store; save a test sale.
Watch store expiry dates ("expiring soon" on the operator board).
بيانات٦.٣ الأرقام / التقارير لا تطابق التوقّع · Numbers don't match
«الربح غلط»، «الرصيد لا يطابق»، «التقرير ناقص صفوفاً».
غالباً ليس عطلاً بل سوء فهم: نطاق تاريخ، وردية مفتوحة، بيع آجل غير محصّل، ضريبة/خصم، أو رصيد افتتاحي غير مُدخَل.
- ثبّت نطاق التاريخ المقصود.
- تحقّق من الورديات المفتوحة (تؤثّر في نقد اليوم).
- راجع الآجل غير المحصّل والشيكات تحت التحصيل.
- للمحاسبة: افتح ميزان المراجعة وتأكّد Σمدين = Σدائن ومطابقته للدفاتر التجارية.
غالباً شرح المفهوم للعميل. إن وُجد فارق مطابقة حقيقي: الطبقة المحاسبية ذاتية الشفاء — أعد فتح الشاشة المحاسبية لتُعاد المزامنة.
الرقم يطابق مصدره بعد ضبط النطاق؛ المطابقة = صفر.
درّب العميل على معنى «الآجل» و«الوردية» و«النطاق الزمني».
"Profit is wrong," "the balance doesn't match," "the report is missing rows."
Usually not a fault but a misunderstanding: date range, an open shift, an uncollected credit sale, tax/discount, or an opening balance not entered.
- Fix the intended date range.
- Check for open shifts (they affect today's cash).
- Review uncollected credit (receivables) and cheques under collection.
- For accounting: open the Trial Balance, confirm Σdebit = Σcredit and it reconciles with the commercial ledgers.
Usually explain the concept. If a real gap exists: the accounting layer self‑heals — reopen the accounting screen to re‑sync.
The number matches its source once the range is fixed; reconciliation is zero.
Train the customer on what "credit," "shift," and "date range" mean.
أداء٦.٤ بطء أو تعليق · Slow or hanging
فتح الشاشات بطيء، البحث متأخّر، الحفظ يتجمّد لحظياً.
ملف قاعدة بيانات متضخّم؛ WAL كبير؛ قرص شبه ممتلئ؛ جهاز ضعيف.
«صحة النظام» ← database.size وwalSize وdisk.free.
شغّل التحسين (optimize) — يأخذ لقطة ثم VACUUM/ANALYZE ويقلّص الملف. فرّغ مساحة قرص إن لزم.
beforeSize > afterSize؛ الشاشات أسرع.
تحسين ربع سنوي ضمن الصيانة الدورية.
Screens open slowly, search lags, saving freezes briefly.
A bloated DB file; a large WAL; a nearly‑full disk; a weak machine.
System health → database.size, walSize, disk.free.
Run Optimize — snapshot then VACUUM/ANALYZE, shrinking the file. Free disk space if needed.
beforeSize > afterSize; screens are faster.
Quarterly optimize as part of periodic maintenance.
تحديث٦.٥ مشكلة بعد تحديث · After an update
سلوك جديد غير متوقّع بعد ترقية.
«صحة النظام» ← الإصدار؛ سجلّ الأخطاء؛ قائمة التراجع.
التراجع: انسخ أحدث pre-update-*.db من rollback\ فوق data\cetara.db، ثم أعد التشغيل.
الإصدار السابق يعمل؛ البيانات سليمة.
التزم دائماً بـ precheck ثم prepare قبل أي تحديث.
Unexpected new behavior after an upgrade.
System health → version; error log; rollback list.
Rollback: copy the newest pre-update-*.db from rollback\ over data\cetara.db, then restart.
The previous version works; data is intact.
Always run precheck then prepare before any update.
تلف٦.٦ شك في تلف قاعدة البيانات · Suspected DB corruption
رسائل SQLite غريبة، فشل حفظ متكرّر، «صحة» integrity ليست ok.
شغّل سلامة قاعدة البيانات الكامل + فحص المفاتيح الخارجية.
١) الإصلاح الشائع (checkpoint/REINDEX/foreign_keys). إن بقي التلف: ٢) استعد أحدث نسخة سليمة (متحقَّق منها) من backups\.
integrityOk = true، foreignKeyViolations = 0.
إغلاق سليم للبرنامج؛ لا تنسخ ملف القاعدة أثناء تشغيله.
Odd SQLite messages, repeated save failures, health integrity not ok.
Run full DB integrity + foreign‑key check.
1) Common repair (checkpoint/REINDEX/foreign_keys). If corruption remains: 2) restore the newest healthy (verified) backup from backups\.
integrityOk = true, foreignKeyViolations = 0.
Clean shutdown; never copy the DB file while it is running.
مشاكل ميدانية شائعة · Common Field Issues
معظمها ليس عطلاً — بل قاعدة تؤدّي دورها، أو خطوة نُفّذت بترتيب خاطئ.
الصندوق لا يطابق عند الإغلاق (زيادة/عجز)
متوقّع أحياناً — رصيد الدرج عدّ فعلي والفرق يُسجَّل بأمانة. راجع سجلّ حركات الصندوق: هل نُسِيَ قبض/صرف؟ هل رُحّل النقد الزائد عبر «ترحيل النقدية» لا بسحب غير مسجّل؟ سجّل الفرق وبلّغ إن كان كبيراً أو متكرّراً.
شيك مستلَم لم يُنقِص دين العميل نقداً
صحيح بالتصميم: الشيك يسدّد العميل فوراً لكن النقد يتحرّك عند التحصيل فقط. حتى التحصيل تعيش القيمة في «الشيكات تحت التحصيل». حصّله عند استحقاقه ليدخل النقد.
«لا أستطيع البيع» أو زر الدفع لا يعمل
غالباً لا توجد وردية مفتوحة — افتح وردية من «الورديات والصندوق». إن كان بيعاً آجلاً، تأكّد من اختيار العميل أولاً.
مسح الباركود لا يُضيف الصنف
تأكّد أن المؤشّر داخل شريط البحث واضغط Enter. إن ظهر تنبيه، فالباركود غير مسجّل على أي منتج — أضِفه لبطاقة المنتج من «المخزون».
المخزون يبدو خاطئاً
افتح «إدارة المخزون» وراجع سجلّ حركات الصنف. نفّذ جرداً لضبط الرصيد على العدّ الفعلي (يسجّل الفرق كهالك). إن كان الفارق في مستودع محدّد، راجع التحويلات الأخيرة.
لا يمكن حذف عميل/مورد
له رصيد قائم. سدِّد أو صفّر الرصيد أولاً ثم احذف — حماية من فقدان تاريخ مالي.
حقل الخصم مقفل في نقطة البيع
الخصم اليدوي يتطلّب صلاحية discount_manual غير الممنوحة للكاشير افتراضياً. اطلب من المالك منحها، أو اعتمد خصومات السياسة.
The drawer doesn't balance at close (over/short)
Sometimes expected — the drawer is a physical count and the difference is recorded honestly. Review the cash‑movement log: a forgotten cash in/out? Was surplus moved out via "cash carry‑over" rather than an unrecorded withdrawal? Record it and report a large or recurring gap.
A received cheque didn't reduce the customer's debt in cash
Correct by design: the cheque settles the customer at once but cash moves only at collection. Until then the value lives in "cheques under collection." Collect it at maturity for the cash to arrive.
"Can't sell" / the pay button does nothing
Usually no shift is open — open one from "Shifts & Cash." For a credit sale, make sure a customer is selected first.
Scanning a barcode adds nothing
Ensure the cursor is in the search bar and press Enter. A warning means the barcode is not registered on any product — add it to the product card in "Products."
Stock looks wrong
Open "Inventory Management" and review the item's movement ledger. Run a stock count to set the balance to the physical count (records the variance as shrinkage). If the gap is in one warehouse, review recent transfers.
Can't delete a customer/supplier
They have an outstanding balance. Settle or zero it first, then delete — this protects financial history.
The discount field is locked in POS
Manual discount requires the discount_manual permission, not granted to cashiers by default. Ask the owner to grant it, or rely on policy discounts.
رسائل الأخطاء ومعناها · Error Codes
عندما يرفض Cetara إجراءً فهو غالباً يحمي بياناتك — كادت قاعدة أن تُكسَر. الرموز مأخوذة من db/database.js وdb/accounting.js الفعليّين.
| الرمز · Code | المعنى · Meaning | الحل · What to do |
|---|---|---|
| المبيعات والعملاء · Sales & Customers | ||
| credit_limit_exceeded | البيع الآجل يتجاوز حدّ ائتمان العميل · credit sale exceeds the customer's credit limit | حصّل دفعة، أو ارفع الحدّ من بطاقة العميل، أو بِع نقداً · collect first, raise the limit, or sell cash |
| blocked (customer) | حذف عميل له رصيد · deleting a customer with a balance | سدِّد الرصيد أو صفّره ثم احذف · settle/zero the balance, then delete |
| الموردون والمشتريات · Suppliers & Purchases | ||
| blocked (supplier) | حذف مورد له رصيد · deleting a supplier with a balance | ادفع الرصيد أو صفّره أولاً · settle first |
| payment_method_required | ترحيل شراء دون طريقة دفع · posting a purchase with no payment method | اختر نقدي/شيك/تحويل/بطاقة/آجل · choose a method |
| cheque_needs_supplier | دفع بشيك دون مورد محدّد · paying by cheque with no supplier | اختر المورد قبل الدفع بشيك · pick the supplier first |
| الورديات والصندوق · Shifts & Cash | ||
| shift_already_open | توجد وردية مفتوحة بالفعل · a shift is already open | أغلق الوردية الحالية قبل فتح أخرى · close the current shift first |
| no_open_shift | لا توجد وردية مفتوحة · no open shift | افتح وردية قبل البيع أو حركات الصندوق · open a shift first |
| amount_invalid | مبلغ صفري أو غير صالح · a zero/invalid amount | أدخل مبلغاً موجباً · enter a positive amount |
| reason_required | حركة صندوق دون سبب · a cash movement with no reason | اكتب سبب القبض/الصرف · type the reason |
| exceeds_drawer | ترحيل نقد أكثر مما في الدرج · carrying over more than the drawer holds | راجع المتاح (available) وابقَ ضمنه · stay within available |
| bank_required / bank_not_found | ترحيل لبنك دون/بخطأ في اختياره · carry‑over to a missing/invalid bank | اختر بنكاً صحيحاً من الدليل · choose a valid bank |
| الشيكات · Cheques | ||
| invalid_status | حالة شيك غير معروفة · unknown cheque status | استخدم حالة صحيحة (received/deposited/collected/returned/cancelled) |
| bank_name_required | إضافة بنك بلا اسم · adding a bank with no name | أدخل اسم البنك (صلاحية bank_add) · enter the bank name |
| المخزون · Inventory | ||
| would_go_negative | تسوية تُنزل الرصيد تحت الصفر · adjustment would take stock below zero | صحّح الكمية، أو فعّل «السماح بالمخزون السالب» إن كان مقصوداً · fix qty or allow negative |
| insufficient_in_source | تحويل يتجاوز رصيد المستودع المصدر · transfer exceeds source warehouse | حوّل ضمن المتاح · transfer within available |
| insufficient_in_sales_warehouse | بيع يتجاوز رصيد مستودع البيع المفروض · sale exceeds the enforced sales warehouse | استلم/حوّل بضاعة، أو راجع إعداد الفرض · receive/transfer or review setting |
| المحاسبة · Accounting | ||
| period_locked | قيد بتاريخ داخل فترة مُقفلة · entry dated in a closed period | التاريخ المُقفل لا يتغيّر؛ استخدم فترة مفتوحة · use an open period |
| unbalanced | قيد يدوي غير متوازن (مدين ≠ دائن) · a manual entry not balanced | ساوِ المدين والدائن · make debit = credit |
| period_overlap / end_before_start | فترة مالية متداخلة أو نهايتها قبل بدايتها · overlapping/backwards period | صحّح تواريخ الفترة · fix the period dates |
| no_equity_account / no_cash_account | حساب نظام مفقود · a required system account is missing | أعد فتح دليل الحسابات لإعادة بناء الأساسيّة · reopen the chart of accounts |
| code_exists / name_required / system_account | تعارض عند إضافة/تعديل حساب · conflict adding/editing an account | استخدم رمزاً/اسماً فريداً؛ حسابات النظام لا تُعطَّل · unique code/name |
active / grace / expired / suspended. بعد المهلة قد يصبح المتجر للقراءة فقط. الحل: جدّد من سطح المشغّل. · Licensing is a date‑derived status, not a single code; past grace a store may go read‑only — renew from the Operator panel.النسخ الاحتياطي والاستعادة · Backup & Restore
النسخ يومية تلقائية (آخر 7 محفوظة). الاستعادة الكاملة تتم بملف .db فقط.
استعادة كاملة من نسخة
- أغلق Cetara تماماً (تأكّد ألا تبقى عملية عاملة — لا يعمل في الخلفية).
- انسخ ملف النسخة
.dbفوق ملف القاعدة الحاليcetara.db. - افتح Cetara — بياناتك عند لحظة تلك النسخة.
.db فقط. تحقّق من سلامة أي نسخة قبل الاعتماد عليها عبر «تحقّق النسخ».Full restore from a backup
- Close Cetara completely (make sure no process is left; it doesn't run in the background).
- Copy the backup
.dbfile over the currentcetara.db. - Open Cetara — your data is as of that backup's moment.
.db file only. Verify any backup with "Backup verify" before relying on it.الترخيص و«للقراءة فقط» · Licensing
حالة الاشتراك مشتقّة من التواريخ: active → grace (مهلة) → expired → قد يصبح المتجر للقراءة فقط (لا يُحفظ بيع جديد)، أو suspended (موقوف من الإدارة). الحل دائماً: جدّد الاشتراك واضبط تاريخ انتهاء جديد من سطح المشغّل حتى تعود الحالة active، ثم أعد فتح المتجر واحفظ بيعاً تجريبياً.
الوقاية: تابع تنبيه «قريب الانتهاء» في لوحة المشغّل وجدّد قبل انتهاء المهلة.
Subscription status is derived from dates: active → grace → expired → the store may go read‑only (new sales won't save), or suspended (disabled by the operator). The fix is always: renew and set a new expiry from the Operator panel until status is active, then reopen the store and save a test sale.
Prevention: watch the "expiring soon" alert on the operator board and renew before grace ends.
الدعم عن بُعد — إجراء آمن · Remote Support
- من مركز الدعم: اكتشف أدوات الدعم (RustDesk مفضّل، AnyDesk بديل).
- إن لم تكن مثبّتة، أرشِد العميل لتثبيت RustDesk (مجاني).
- ولّد رمز جلسة وشارك معرّف الجهاز مع العميل عبر قناة موثوقة.
- اطلب إذن العميل الصريح قبل أي تعديل. لا تُدخِل بيانات حسّاسة نيابةً عنه.
- بعد الانتهاء: أنهِ الجلسة وتأكّد أن العميل أغلق أداة الدعم.
- From the Support Center: detect the remote tools (RustDesk preferred, AnyDesk fallback).
- If none is installed, guide the customer to install RustDesk (free).
- Generate a session code and share the machine ID over a trusted channel.
- Ask the customer's explicit permission before any change. Do not enter sensitive data on their behalf.
- When done: end the session and confirm the customer closed the remote tool.
التصعيد وكيف تشرح للعميل · Escalation
متى تُصعّد
صدّر حزمة التشخيص المضغوطة وأرفقها عند التصعيد إذا: استمر التلف بعد الإصلاح والاستعادة؛ أو تكرّر خطأ غير مذكور في «رسائل الأخطاء»؛ أو طلب العميل ميزة غير موجودة (ليست عطلاً — سجّلها كطلب). اجمع أولاً: الرسالة الحرفية، الشاشة، خطوات إعادة الإنتاج، وآخر نسخة احتياطية.
كيف تشرح للعميل
- تكلّم بالنتيجة لا بالتقنية: «بياناتك سليمة، أخذت نسخة قبل الإصلاح، وأول بيع نجح».
- إن كان الأمر سوء فهم (نطاق تاريخ/آجل): اشرح المفهوم بهدوء.
- إن أخذت نسخة/لقطة: أخبره صراحةً — يبني الثقة.
- لا تَعِد بما لا يفعله البرنامج. الدليل هو المرجع.
When to escalate
Export the zipped diagnostic package and attach it when escalating if: corruption persists after repair and restore; an error not listed in "Error Codes" recurs; or the customer wants a feature that doesn't exist (not a fault — log it as a request). First collect: the literal message, the screen, the reproduction steps, and the latest backup.
How to explain to the customer
- Speak outcomes, not internals: "Your data is safe, I took a copy before the fix, and a test sale worked."
- If it's a misunderstanding (date range/credit): explain the concept calmly.
- If you took a backup/snapshot: say so explicitly — it builds trust.
- Never promise what the software doesn't do. The manual is the source of truth.