سفارشها
تب Orders داشبورد زنده همه سفارشهای کافهتریاست که مشتریهای شما ثبت میکنند. این صفحه هر ۳ ثانیه cloud را poll میکند و فعالیت جدید را با یک اعلان دسکتاپ، یک هشدار صوتی و یک badge شمارش در حال انتظار روی سربرگ تب نشان میدهد.
چیدمان
صفحه Orders دو بخش دارد:
| بخش | کاربرد |
|---|---|
| Status Tabs | فیلتر بر اساس وضعیت سفارش: all، placed، confirmed، preparing، ready، served. سفارشهای cancelled و refunded بهطور پیشفرض فیلتر میشوند. |
| Order List | یک کارت برای هر سفارش، گروهبندیشده از جدیدترین به قدیمیترین. هر کارت کد میز، شماره تلفن مشتری در صورت وجود، آیتمها، جمعها و دکمههای اقدام را نشان میدهد. |
پولینگ زنده
داشبورد Orders هر ۳ ثانیه /v1/cafeteria/admin/orders/poll را poll میکند. هر سفارش جدید این موارد را ایجاد میکند:
- یک اعلان دسکتاپ با کد میز و تعداد آیتمها.
- یک هشدار صوتی روی اسپیکرهای سرور، اگر sound notifications در Settings > کافهتریا روشن باشند.
- افزایش badge شمارش در حال انتظار روی تب Orders.
- اگر چاپگر با 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 نشان میدهد تا مشتری ببیند کدام آیتمها آماده شدهاند یا در راه هستند.
لغو یک سفارش
- کارت سفارش را باز کنید.
- روی Cancel کلیک کنید.
- در دیالوگی که ظاهر میشود تأیید کنید.
- سفارش به
cancelledتغییر میکند. در تاریخچه باقی میماند اما از نمای زنده پیشفرض حذف میشود.
لغو، عملیاتی برای کل سفارش است. برای لغو یک خط تکی، وضعیت همان خط را بهصورت جداگانه روی cancelled بگذارید.
تسویه (Settle Check)
تسویه همه سفارشهای باز روی یک میز را در یک مرحله میبندد. وقتی مشتری میخواهد برود و کل حساب را پرداخت کند از این گزینه استفاده کنید.
- میز را از صفحه Tables یا منوی اقدام Floor Plan باز کنید.
- روی Settle Check کلیک کنید.
- modal همه سفارشهای آن میز را که هنوز
servedنشدهاند فهرست میکند. - یک روش پرداخت انتخاب کنید. گزینهها: Cash، Card، Online، Other.
- تأیید کنید.
سرور کارهای زیر را بهصورت 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 کنید تا الگوهای خطای کارکنان را پیدا کنید.