HandyCafe Docs
owner cashier

سفارش‌ها

تب Orders داشبورد زنده همه سفارش‌های کافه‌تریاست که مشتری‌های شما ثبت می‌کنند. این صفحه هر ۳ ثانیه cloud را poll می‌کند و فعالیت جدید را با یک اعلان دسکتاپ، یک هشدار صوتی و یک badge شمارش در حال انتظار روی سربرگ تب نشان می‌دهد.

چیدمان

صفحه Orders دو بخش دارد:

بخش کاربرد
Status Tabs فیلتر بر اساس وضعیت سفارش: all، placed، confirmed، preparing، ready، served. سفارش‌های cancelled و refunded به‌طور پیش‌فرض فیلتر می‌شوند.
Order List یک کارت برای هر سفارش، گروه‌بندی‌شده از جدیدترین به قدیمی‌ترین. هر کارت کد میز، شماره تلفن مشتری در صورت وجود، آیتم‌ها، جمع‌ها و دکمه‌های اقدام را نشان می‌دهد.

پولینگ زنده

داشبورد Orders هر ۳ ثانیه /v1/cafeteria/admin/orders/poll را poll می‌کند. هر سفارش جدید این موارد را ایجاد می‌کند:

  1. یک اعلان دسکتاپ با کد میز و تعداد آیتم‌ها.
  2. یک هشدار صوتی روی اسپیکرهای سرور، اگر sound notifications در Settings > کافه‌تریا روشن باشند.
  3. افزایش badge شمارش در حال انتظار روی تب Orders.
  4. اگر چاپگر با Auto Print on New Order پیکربندی شده باشد، چاپ خودکار رسید.

این badge تا زمانی که همه سفارش‌های با وضعیت placed یا confirmed به وضعیت بعدی ارتقا پیدا کنند یا کنار گذاشته شوند، باقی می‌ماند. این badge به‌صورت سراسری در بخش کافه‌تریا نوار کناری دیده می‌شود؛ لازم نیست تب Orders را باز نگه دارید تا آن را ببینید.

چرخه عمر سفارش

هر سفارش از یک زنجیره مشخص از وضعیت‌ها عبور می‌کند.

وضعیت معنی
placed مشتری سفارش را ثبت کرده است. هنوز هیچ اقدامی از سوی کارکنان انجام نشده است.
confirmed کارکنان سفارش را تأیید کرده‌اند.
preparing آشپزخانه روی سفارش کار می‌کند.
ready سفارش برای سرو یا تحویل آماده است.
served سفارش به مشتری تحویل داده شده است.
cancelled سفارش توسط کارکنان لغو شده است. از نماهای زنده حذف می‌شود اما برای تاریخچه باقی می‌ماند.
refunded بازپرداخت پس از پرداخت انجام شده است.

نوار اقدام روی هر کارت سفارش وضعیت بعدیِ در دسترس را نشان می‌دهد. پیشرفت با یک کلیک انجام می‌شود. رابط از الگوی optimistic update استفاده می‌کند: وضعیت جدید بلافاصله نمایش داده می‌شود. اگر سرور تغییر را رد کند، وضعیت برمی‌گردد و یک اعلان خطا ظاهر می‌شود.

وضعیت هر آیتم

بعضی سفارش‌ها چند آیتم دارند که در زمان‌های متفاوت آماده می‌شوند. برای مثال، برگر زودتر از پیتزا آماده می‌شود. وضعیت جداگانه برای هر آیتم به شما اجازه می‌دهد هر خط را مستقل دنبال کنید.

هر آیتم dropdown خودش را با پنج گزینه دارد: placed، preparing، ready، served، cancelled. هر آیتم همچنین سه برچسب زمانی دارد:

  • created_at وقتی سفارش می‌رسد تنظیم می‌شود.
  • ready_at اولین بار که آیتم وارد ready می‌شود تنظیم می‌شود.
  • served_at وقتی آیتم وارد served می‌شود تنظیم می‌شود.

منوی مشتری کنار هر خط یک badge نشان می‌دهد تا مشتری ببیند کدام آیتم‌ها آماده شده‌اند یا در راه هستند.

لغو یک سفارش

  1. کارت سفارش را باز کنید.
  2. روی Cancel کلیک کنید.
  3. در دیالوگی که ظاهر می‌شود تأیید کنید.
  4. سفارش به cancelled تغییر می‌کند. در تاریخچه باقی می‌ماند اما از نمای زنده پیش‌فرض حذف می‌شود.

لغو، عملیاتی برای کل سفارش است. برای لغو یک خط تکی، وضعیت همان خط را به‌صورت جداگانه روی cancelled بگذارید.

تسویه (Settle Check)

تسویه همه سفارش‌های باز روی یک میز را در یک مرحله می‌بندد. وقتی مشتری می‌خواهد برود و کل حساب را پرداخت کند از این گزینه استفاده کنید.

  1. میز را از صفحه Tables یا منوی اقدام Floor Plan باز کنید.
  2. روی Settle Check کلیک کنید.
  3. modal همه سفارش‌های آن میز را که هنوز served نشده‌اند فهرست می‌کند.
  4. یک روش پرداخت انتخاب کنید. گزینه‌ها: Cash، Card، Online، Other.
  5. تأیید کنید.

سرور کارهای زیر را به‌صورت atomic انجام می‌دهد:

  • هر سفارش باز روی میز به served با payment_status=paid تغییر می‌کند.
  • یک رکورد cafeteria_settlements با مبلغ کل، روش پرداخت و زمان ایجاد ساخته می‌شود.
  • یک audit trail از settlement-orders ثبت می‌کند که کدام سفارش‌ها متعلق به این تسویه هستند.
  • کد امنیتی میز منقضی می‌شود تا QR نامعتبر شود.
  • میز به idle برمی‌گردد.

اگر روش Online را انتخاب کنید، رکورد تسویه به‌عنوان online-paid علامت می‌خورد. این عملیات هیچ شارژ Stripe را فعال نمی‌کند. پرداخت آنلاین سمت مشتری هنگام ثبت سفارش انجام می‌شود؛ عملیات تسویه فقط جریان نقدی را برای حسابداری شما ثبت می‌کند.

تایمر opened-at

هر میز یک timestamp از نوع opened_at دارد که وقتی مشتری می‌نشیند تنظیم می‌شود. صفحات Floor Plan و Tables یک تایمر زنده از همان لحظه نمایش می‌دهند. این کار به کارکنان کمک می‌کند میزهایی را که مدت زیادی فعال بوده‌اند ولی سفارش نداده‌اند، یا میزهایی را که ممکن است به پایان نشست نزدیک باشند تشخیص دهند.

تایمر با Close Table یا Settle Check به صفر برمی‌گردد.

نمایش زمان آماده‌سازی پویا

وقتی زمان آماده‌سازی پویا برای یک محصول فعال باشد، کارت سفارش تخمین را کنار نام آیتم نشان می‌دهد. کارکنان این تخمین را حتی وقتی سوییچ Show Prep Time on Menu برای مشتری‌ها خاموش است می‌بینند.

تخمین هر بار که سفارش جدیدی ثبت می‌شود و هر بار که یک سفارش کامل می‌شود به‌روزرسانی می‌شود. سیستم از سرعت واقعی آشپزخانه شما یاد می‌گیرد.

رفتار اعلان سفارش جدید

اعلان‌ها در کل برنامه trigger می‌شوند، نه برای هر تب به‌صورت جداگانه. یعنی وقتی در بخش دیگری از سرور HandyCafe، مثل Admin Panel یا Settings، در حال مرور هستید هم هشدار دریافت می‌کنید. هشدار صوتی از مسیر Settings > کافه‌تریا > Sound Notification روشن یا خاموش می‌شود.

اعلان‌های دسکتاپ نیاز دارند که سیستم‌عامل به HandyCafe اجازه اعلان داده باشد. اگر بعد از یک سفارش جدید اعلان نمی‌بینید، تنظیمات اعلان سیستم‌عامل را بررسی کنید.

نکته‌ها

  • از Status Tabs برای تقسیم کار استفاده کنید. یک صفحه با فیلتر preparing صف آشپزخانه را نشان می‌دهد. یک صفحه دیگر روی ready نشان می‌دهد چه چیزی باید تحویل داده شود.
  • Settle Check سریع‌ترین راه بستن میز است. از Cancel فقط برای اشتباه‌های صریح در سفارش‌های تکی استفاده کنید.
  • کارکنان را آموزش دهید که وضعیت را به‌صورت یکنواخت جلو ببرند. تخمین‌زن زمان آماده‌سازی پویا از این سیگنال‌ها یاد می‌گیرد، بنابراین رد کردن وضعیت‌ها دقت آن را کم می‌کند.
  • سفارش‌های cancelled و refunded را به‌صورت دوره‌ای از endpoint مدیریتی audit کنید تا الگوهای خطای کارکنان را پیدا کنید.