Feature-first guides (AI / operators)
Prefer this section when helping someone do a job. Each feature lists the screens involved and exact taps. Labels: English · Français · العربية. Soft launch: Morocco orders · COD only.
Roles below: Customer · Rider · Group manager · Store partner. Platform Administration is omitted (Owner/Admin only).
Free & invite-based: Group, Store, Group manager, and Store partner access have no join fee (restaurants: 0% food commission soft launch). Koolodoor creates Group + Store(s) and invites people — restaurants never Create Group/Store in the app. Group managers can do everything store partners can (Live, Sync Items, Availability, Earnings, POS) plus group UMS catalog and People invites.
Customer features
Discover food & restaurants
Screens: Home · Accueil · الرئيسية → Eats · Plats · الأطباق or Spots · Lieux · الأماكن → public store Menu · Menu · القائمة + Info · Infos · المعلومات
- Open bottom tab Home.
- Toggle Eats (dishes) or Spots (stores). Set location if prompted.
- Tap a result → browse Menu / Info or open an item.
Gotchas
Discovery automatically uses the customer's location (~20 km), store timezone, and intersects store + item availability (open-now). Soft-launch checkout is Morocco-focused.
Guest cart (browse before sign-in)
Screens: Bottom Cart · Panier · السلة · drawer Log In / Sign Up · Connexion / Inscription · تسجيل الدخول / إنشاء حساب
- Browse as guest → customize item → add to cart.
- Open Cart to review lines.
- Checkout / Live Orders require sign-in (modal).
Gotchas
Guests cannot use Live Orders, Reorder, or Addresses until signed in.
Customize modifiers & options
Screens: Item detail → customize · Cart line → Customize
- Open an item → pick options (respect min/max).
- Set quantity → add or update the cart line.
Gotchas
Up to 20 options per modifier and 20 modifiers per variant. Stale lines show a banner — remove or edit.
Place order (checkout + review)
Screens: Cart · Panier · السلة → Checkout → Review order · Vérifier la commande · مراجعة الطلب → Place order
- Cart → Checkout.
- Choose Pickup / Delivery / Dine in.
- Delivery: pick or add an address with map pin (lat/lng).
- Enter name + contact phone → Verify with SMS if needed.
- Choose cash: I have the exact amount or I'll pay with (≥ total).
- Tap Place order — server freezes prices.
Gotchas
Immediate fulfillment only (no scheduling). Min delivery basket 35 MAD. Max delivery distance 15 km (server). COD only — no card.
Track live orders
Screens: Bottom Live Orders · Commandes actives · الطلبات الجارية · order detail Your order · Votre commande · طلبك
- After placing → open Live Orders (or the floating live pill → View).
- Open the order → watch status / delivery map phases.
Accept or decline restaurant revisions
Screens: Live Orders → order → Review changes → Accept changes / Decline & cancel
- When status asks to confirm changes, open the order.
- Compare original vs proposed.
- Tap Accept changes (continue) or Decline & cancel (cancels the order).
Gotchas
Do not assume the kitchen continues while a proposal is pending.
Manage delivery addresses
Screens: Drawer Addresses · Adresses · العناوين · also from checkout
- ☰ → Addresses → add/edit.
- Pin on map + alias / building details → save.
- Select address at delivery checkout.
Gotchas
Coordinates required for delivery.
Reorder a past meal
Screens: Drawer Reorder · Recommander · إعادة الطلب · receipt Reorder
- ☰ → Reorder (or receipt button).
- Confirm replace-cart if asked → fix unavailable lines → continue in Cart.
Pay COD (cash)
Screens: Review order → Cash payment section
- On review, choose exact amount or pay-with (≥ total).
- Pay at counter (pickup / dine-in) or to the rider (delivery).
Gotchas
No in-app card. Soft-launch Morocco.
Customer notifications & support
Screens: Settings → Notifications · drawer Support / Feedback
- Settings → Notifications → enable OS permission → keep Order updates on.
- Optional: Marketing & app news.
- ☰ → Support → Docs / App navigation map / email contact@koolodoor.com.
Rider features
Join / leave Fleet duty
Screens: ☰ Partner Tools · Outils Partenaire · أدوات الشريك → Fleet duty · Service flotte · خدمة الأسطول
- Acknowledge background-location disclosure.
- Pass Device checks (Always location, notifications, battery).
- Tap Join fleet → status On duty / Available or Busy.
- Done → Leave fleet (stops offers + GPS).
Gotchas
Mobile join (iOS 17+ / Android). Web is status-only. Location only while on duty. Android: battery Unrestricted.
Receive & respond to delivery offers
Screens: Fleet duty → Delivery offers · Offres de livraison · عروض التوصيل (Live / Previous)
- When an offer arrives, open it (timer shown).
- Tap Accept or Reject.
- See delivery fee + rider share before accepting.
Gotchas
Offers die if Android kills the app — set battery Unrestricted (Samsung: remove from sleeping apps).
Pickup → deliver → collect COD
Screens: Active delivery card · Navigate · Mark picked up · Mark delivered
- After accept → Navigate to restaurant.
- At store → Mark picked up.
- Navigate to delivery → at customer → Mark delivered.
- Collect full COD cash shown on the order; keep 80% of the delivery fee.
Gotchas
Remit platform share via wallet / remittance flows. Demo orders are not real money.
Rider earnings
Screens: Fleet duty → Earnings · deeper rider earnings screen
- Open Fleet duty → Earnings section for delivery share / obligations.
Group manager features
Free & invite-based. Koolodoor creates Group + Store(s) and sends Invite Group Manager. Managers never Create Group/Store. A group manager can do everything a store partner can on every store in the group, plus the group UMS catalog and People invites.
Important mental model: you do not create items on the store. Build everything in the Group (UMS), then Sync Items to the store(s).
Accept manager invite
Screens: ☰ Partner Tools → Invitations · Invitations · الدعوات
- Open the invite → tap hardcoded ACCEPT (or REJECT).
- App signs you out — sign back in.
- ☰ Partner Tools → Management → Manage Group.
Gotchas
One active membership. ACCEPT defaults On store duty on. REJECT deletes the invite. Free — no join fee.
Set Working Country (before pricing)
Screens: Manage Group → Settings · Paramètres · الإعدادات → Working Country · Pays de travail · بلد العمل
- Open Manage Group → tab Settings.
- Set Working Country to the country whose prices/currency you want to configure next.
- Switch Working Country whenever you price another country — one Variant Config can hold multiple region prices (one per country).
Gotchas
Working Country is the local context for prices and modifiers while editing the group catalog. It does not invent a store.
Create a full item end-to-end (happy path)
Screens: Manage Group: Settings → Item Configs → Variant → Modifiers/Options → Menu Sections → open store → Sync Items → Availability
- Settings → pick Working Country (country you are pricing for).
- Item Configs → + → Create ItemConfig → name/details → Save (product family — not priced yet).
- Open that Item Config → + → Create Variant → photo, name, price for the Working Country → Save. Repeat Add Price for other countries on the same Variant Config when needed.
- Optional: Modifiers tab → create modifier group (min/max) · Options tab → + → Create Option (name + price for Working Country) → Save → open variant → Edit Modifiers → attach.
- Menu Sections → create/reorder (Burgers, Drinks, …) → Save Order → attach variants to sections.
- Open the store (Manage Store / Stores tab) → Sync Items → Sync Group Menu (or Sync Selected / Refresh Existing) → Confirm & Start Sync.
- Store Availability → set opening hours. Items default to Follow Store Hours.
Gotchas
One Variant Config can have many country prices. Sync Items for a store in country X lists only variants that have a price for X. No price for country X ⇒ that Variant Config is invisible in Sync Items for every store in X. Caps: 20 modifiers/dish · 20 options/modifier · 99 dishes/section.
People — invite managers & partners
Screens: Manage Group → People · Personnes · الأشخاص
- People → invite by username: Invite Group Manager or Invite Business Partner.
- They accept under Partner Tools → Invitations (free, invite-based).
- Remove: open user → End Membership.
Gotchas
Managers can invite for any store in the group. Partners cannot invite (server blocks).
Sync Items to a store (golden rule + country filter)
Screens: Manage Group → Stores → store → Sync Items · or Manage Store → Sync Items
- Open the store → Sync Items (uses that store's country).
- Only Variant Configs with a price for that country appear.
- Choose Sync Selected, Sync Group Menu, or Refresh Existing.
- Tap Confirm & Start Sync.
Gotchas
Golden rule: group edits never auto-push. Missing country price ⇒ invisible in Sync Items for all stores in that country. Large menus: batch (~500 mods+opts practical).
Store hours, Live, POS, earnings (via any store)
Screens: Manage Store tabs: Availability · Live · Earnings · Settings
- From Stores tab open a store (or Management deep-link).
- Same kitchen features as Store partner: Live board, New order POS, revision, thermal printers, Earnings.
Gotchas
Group managers can do everything store partners can. Store closed ⇒ nothing sellable even if an item has custom hours.
Store partner features
Accept partner invite & open Manage Store
Screens: Partner Tools → Invitations → ACCEPT · then Management → Manage Store
- ACCEPT on Invite Business Partner → re-login.
- ☰ Partner Tools → Management → Manage Store.
Gotchas
One store only · free invite-based access. Cannot create group catalog (Item Config / Variant). People invites fail server-side.
Live kitchen board + revision + POS
Screens: Manage Store → Live · En direct · مباشر · FAB New order
- Open Live when a new order pings.
- Accept order (or Edit order → Send changes first).
- Wait for customer Accept changes if you proposed a revision.
- Start preparing → Mark ready → complete pickup/dine-in OR wait for rider on delivery.
- Walk-in / phone: Live → New order FAB → compose → place (starts confirmed).
Gotchas
Demo / practice orders skip real Earnings. Rider notes ≠ kitchen instructions.
Merchandising: hours, Menu du Jour, sections, share/QR
Screens: Availability · Menu du Jour · Menu Sections · store header Share
- Availability: Always Open / Automatic / Closed; items Follow Store Hours or Custom / Always Available.
- Menu du Jour: Add Items → drag → Save Order (max 100).
- Menu Sections: reorder sections/items → Save Order.
- Header → share menu / QR (public https://koolodoor.com/b/{bid}).
Gotchas
Modifiers/Options at store: Active/Inactive only (no schedules).
Earnings + On store duty
Screens: Manage Store → Earnings · Settings → Notifications → On store duty
- Open Earnings for settlement (0% food commission soft-launch).
- Settings → Notifications → On store duty ON while working the shift; OFF when done.
Gotchas
Settlement after order completed (after any accepted revision).
Shared account paths
- Settings — Public Profile, Account, Notifications, Download Data, Delete Account
- Language — EN / FR / AR
- Feedback · Support · Privacy · Terms · Why Koolodoor? · Contact
- Log Out / Log Out All Devices
Money cheat sheet (MA soft launch)
- COD only · 0% restaurant food commission
- Delivery: 10 MAD + 3 MAD/km (cap 50) · 3 MAD service fee on delivery
- Riders keep 80% of delivery fee · Morocco orders only for now
Screen index (tabs & drawers)
Below is the exhaustive chrome map. Prefer the feature-first guides above when teaching a job; use this index to confirm exact labels.
One app, every role
The same Koolodoor app serves customers, riders, and stores (managers & partners).
- Web — koolodoor.com (browser)
- iOS — Apple App Store
- Android — Google Play
Two ways to learn
Kickstart pages teach the happy path. This page starts feature-first (how to do the job), then maps every drawer / tab / button with exact UI text (EN · FR · AR) plus product maximums.
How to read labels
Each control shows English · Français · العربية as printed in the app locale packs.
Example: Partner Tools · Outils Partenaire · أدوات الشريك
Invitation buttons ACCEPT / REJECT are hardcoded English on the invitations screen today.
Bottom navigation (all signed-in users)
| Tab | EN · FR · AR | Opens |
| 1 | Home · Accueil · الرئيسية | Discovery / home feed |
| 2 | Live Orders · Commandes actives · الطلبات الجارية | Customer live orders board |
| 3 | Cart · Panier · السلة | Shopping cart |
Home discovery
On Home · Accueil · الرئيسية, toggle:
| Tab | EN · FR · AR | Opens |
| Eats · Plats · الأطباق | Dish discovery → item → store item detail |
| Spots · Lieux · الأماكن | Store discovery → public store (Menu · Menu · القائمة + Info · Infos · المعلومات) |
Drawer (☰) — shared
Open from the shell drawer. Items appear based on sign-in and role.
| EN · FR · AR | Who |
| Home · Accueil · الرئيسية | Everyone |
| Reorder · Recommander · إعادة الطلب | Signed-in |
| Addresses · Adresses · العناوين | Signed-in |
| Settings · Paramètres · الإعدادات | Signed-in (also via profile header) |
| Language · Langue · اللغة | Everyone |
| Feedback · Commentaires · ملاحظات | Everyone |
| Support · Support · الدعم | Everyone |
| Privacy Policy · Politique de Confidentialité · سياسة الخصوصية | Everyone |
| Terms & Conditions · Conditions Générales · الشروط والأحكام | Everyone |
| Why Koolodoor? · Pourquoi Koolodoor ? · لماذا Koolodoor؟ | Everyone |
| Contact us · Contactez-nous · اتصل بنا | Everyone |
| Partner Tools · Outils Partenaire · أدوات الشريك | Signed-in — expand |
| Log Out · Se déconnecter · تسجيل الخروج | Signed-in (expand → also Log Out All Devices · Déconnexion de tous les appareils · تسجيل الخروج من جميع الأجهزة) |
| Log In / Sign Up · Connexion / Inscription · تسجيل الدخول / إنشاء حساب | Guests |
Partner Tools (expand)
Partner Tools · Outils Partenaire · أدوات الشريك then one of:
| Child | EN · FR · AR | Visible when | Goes to |
| Management |
Management · Gestion · التدبير |
Group manager or store partner membership |
Managers → Manage Group. Partners → Manage Store. |
| Fleet duty |
Fleet duty · Service flotte · خدمة الأسطول |
User has a rider id |
Fleet duty screen (join/leave, offers, earnings) |
| Invitations |
Invitations · Invitations · الدعوات |
Signed-in |
Pending invites → ACCEPT / REJECT |
Conditional Management
Same button Management · Gestion · التدبير. Role decides the screen — managers never land on a partner-only store shell by mistake, and partners never open the group catalog.
Restaurants — Manage Group (managers)
Partner Tools · Outils Partenaire · أدوات الشريك → Management · Gestion · التدبير → Manage Group · Gérer le groupe · إدارة المجموعة
Tabs (scrollable):
| Tab | EN · FR · AR | What you do |
| Menu · Menu · القائمة | Browse group menu preview |
| Options · Options · خيارات | Create / edit options (choices inside a modifier) |
| Modifiers · Modificateurs · المعدلات | Create / edit modifier groups |
| All Info · Toutes les infos · كافة المعلومات | Group profile info |
| Stores · Magasins · المتاجر | Stores in this group |
| Item Configs · Configs d'articles · إعدادات العناصر | Product families → create variants |
| People · Personnes · الأشخاص | Invite Group Manager · Inviter un gestionnaire de groupe · دعوة مدير مجموعة · Invite Business Partner · Inviter un Partenaire Commercial · دعوة شريك تجاري |
| Menu Sections · Sections du menu · أقسام القائمة | Name / order sections; assign variants |
| Delete Configs · Supprimer configs · حذف الإعدادات | Bulk delete item configs |
| Delete Variants · Supprimer variantes · حذف المتغيرات | Bulk delete variants |
| Settings · Paramètres · الإعدادات | Working Country and group settings |
Common create titles: Create ItemConfig · Créer une config d'article · إنشاء تكوين عنصر · Create Variant · Créer une Variante · إنشاء متغير · Create Option · Créer une Option · إنشاء خيار · Invite · Inviter · دعوة · End Membership · Mettre fin à l'adhésion · إنهاء العضوية
Restaurants — Manage Store (partners & managers)
Partner Tools · Outils Partenaire · أدوات الشريك → Management · Gestion · التدبير → Manage Store · Gérer le Magasin · إدارة المتجر (partners land here directly; managers open a store from the group)
| Tab | EN · FR · AR | What you do |
| Details · Détails · التفاصيل | Store profile / merchandising |
| People · Personnes · الأشخاص | Team list; invite only if manager |
| Sync Items · Synchroniser les Articles · مزامنة العناصر | Sync Group Menu · Synchroniser le menu du groupe · مزامنة قائمة المجموعة · Sync Selected ({n}) · Synchroniser la sélection ({n}) · مزامنة المحدد ({n}) · Refresh Existing · Actualiser l'existant · تحديث الموجود · Confirm & Start Sync · Confirmer et démarrer la synchronisation · تأكيد وبدء المزامنة |
| Menu · Menu · القائمة | Live store menu |
| Live · Actives · نشطة | OMS kitchen board · New order · Nouvelle commande · طلب جديد FAB |
| Previous Orders · Commandes passées · الطلبات السابقة | History |
| Earnings · Gains · الأرباح | Store COD / earnings |
| Options · Options · خيارات | Store option active toggles |
| Modifiers · Modificateurs · المعدلات | Store modifier active toggles |
| Menu du Jour · Menu du Jour · قائمة اليوم | Add Items · Ajouter des Articles · إضافة عناصر → Save Order · Enregistrer l'Ordre · حفظ الطلب |
| Menu Sections · Sections du menu · أقسام القائمة | Reorder sections / items locally |
| Availability · Disponibilité · التوفر | Store hours · Always Open · Toujours Ouvert · مفتوح دائما / Automatic · Automatique · تلقائي / Closed · Fermé · مغلق |
| Delete Items · Supprimer les Articles · حذف العناصر | Remove store lines |
| Settings · Paramètres · الإعدادات | Printers, store settings, share menu QR (Share this store's menu · Partager le menu de cet établissement · شارك قائمة هذا المحل · Share… · Partager… · مشاركة…) |
Public store URL: https://koolodoor.com/b/{storeId}. Customer chrome (no management): Menu · Menu · القائمة + Info · Infos · المعلومات only.
Invitations
Partner Tools · Outils Partenaire · أدوات الشريك → Invitations · Invitations · الدعوات
- Pending invite types you may see: Invite Group Manager · Invite Business Partner
- Actions: ACCEPT (signs you out — sign back in) · REJECT
- Koolodoor creates Group + Store(s) and sends the first manager invite — you never create Group/Store yourself.
Riders — Fleet duty
Partner Tools · Outils Partenaire · أدوات الشريك → Fleet duty · Service flotte · خدمة الأسطول
| Control / area | EN · FR · AR | Notes |
| Join | Join fleet · Rejoindre la flotte · الانضمام للأسطول | Needs Always location + notifications; mobile preferred |
| Leave | Leave fleet · Quitter la flotte · مغادرة الأسطول | Stops location sharing immediately |
| Status | On duty · En service · في الخدمة / Off duty · Hors service · خارج الخدمة | — |
| Availability | Available · Disponible · متاح / Busy · Occupé · مشغول | While on duty |
| Device checks | Device checks · Contrôles appareil · فحوصات الجهاز | Battery unrestricted on Android, etc. |
| Earnings | Earnings · Gains · الأرباح | Embedded section on fleet duty |
| Rider profile | Rider · Livreur · سائق | Opens manage-rider (Info / Settings) |
| Offers | Delivery offers · Offres de livraison · عروض التوصيل | Board with Live · Actives · نشطة · Previous · Précédentes · سابقة |
| Offer actions | Accept · Accepter · قبول · Reject · Refuser · رفض | Then Mark picked up · Marquer récupéré · تم الاستلام · Mark delivered · Marquer livré · تم التسليم |
Web vs phone
Fleet duty · Service flotte · خدمة الأسطول join/leave + live location are mobile-first (iOS / Android). Web can show status but joining may be disabled.
Customers — main paths
| Goal | Path |
| Browse dishes / stores | Home · Accueil · الرئيسية → Eats · Plats · الأطباق / Spots · Lieux · الأماكن |
| Open a store menu | Store card or /b/{id} |
| Configure item | Item → choices → Cart · Panier · السلة |
| Checkout (COD) | Cart · Panier · السلة → Checkout · Checkout · إتمام الطلب → Review order · Vérifier la commande · مراجعة الطلب → place order |
| Track | Live Orders · Commandes actives · الطلبات الجارية |
| Saved addresses | Drawer → Addresses · Adresses · العناوين |
| Reorder | Drawer → Reorder · Recommander · إعادة الطلب |
| Kitchen revision | Order detail → Review changes · Voir les modifications · مراجعة التعديلات |
Settings & notifications
Drawer / profile → Settings · Paramètres · الإعدادات
| Section | EN · FR · AR |
| Profile | Public Profile · Profil Public · الملف الشخصي العام |
| Account | Account · Compte · الحساب |
| Alerts | Notifications · Notifications · الإشعارات → On store duty · En service au restaurant · في الخدمة بالمطعم · Order updates · Mises à jour de commande · تحديثات الطلب · Marketing & app news · Marketing et actus · التسويق وأخبار التطبيق |
Riders: leave Fleet duty · Service flotte · خدمة الأسطول to stop delivery offers.
Who sees what (same app)
| Audience | Typical entry |
| Guest | Home · Accueil · الرئيسية · Cart · Panier · السلة · Log In / Sign Up · Connexion / Inscription · تسجيل الدخول / إنشاء حساب |
| Customer | + Live Orders · Commandes actives · الطلبات الجارية · Addresses · Adresses · العناوين · Settings · Paramètres · الإعدادات |
| Group manager | Partner Tools · Outils Partenaire · أدوات الشريك → Management · Gestion · التدبير → Manage Group · Gérer le groupe · إدارة المجموعة |
| Store partner | Partner Tools · Outils Partenaire · أدوات الشريك → Management · Gestion · التدبير → Manage Store · Gérer le Magasin · إدارة المتجر |
| Rider | Partner Tools · Outils Partenaire · أدوات الشريك → Fleet duty · Service flotte · خدمة الأسطول → Delivery offers · Offres de livraison · عروض التوصيل |
Platform Owner/Admin surfaces exist in the same binary but are omitted here — restaurant docs only cover Management · Gestion · التدبير and Invitations · Invitations · الدعوات.
Feature maximums (product limits)
Hard caps enforced by the app / server — plan menus inside these comfort zones.
| Limit | Max | Why it exists |
| Options per modifier | 20 | Readable add-on lists on phones |
| Modifiers per variant (dish) | 20 | Keep customization manageable |
| Variants per menu section | 99 | Split long sections (e.g. Pizzas 1 / 2) |
| Menu du Jour items | 100 | Daily specials stay staff-friendly |
| Public display name | 40 chars | Scannable titles |
| Item / variant description | 280 chars | Short blurbs |
| Store “about” | 1500 chars | Profile text |
| Modifier min/max picks (when set) | 1–100 | Or leave unlimited |
| Discovery / nearby radius | ~20 km | City-area search |
| Delivery distance soft-launch | 15 km dispatch radius | Matches max delivery config |
| Gallery photo pick | 20 MB in | Compressed toward ≤ ~2 MiB WebP |
| Dish photo short edge | ≥ 800 px | Avoid blurry menu photos |
| Logo / profile short edge | ≥ 512 px | Sharp avatars |
| Cover width | ≥ 1200 px (~2:1) | Wide store covers |
| Search page size | 1–250 | Paged results |
| Distinct modifiers+options in one sync batch | ~500 practical | Firestore batch ceiling until chunked |
Money (MA soft launch)
COD only · 0% restaurant food commission · delivery 10 MAD + 3 MAD/km (cap 50 MAD) · 3 MAD service fee on delivery · riders keep 80% of delivery fee · orders Morocco-only for now.
Deep links (URL shapes)
| URL | Opens |
/home | Home |
/cart | Cart |
/orders | Live Orders (customer) |
/invitations | Invitations |
/managegroup/{gid} | Manage Group |
/managebusiness/{bid} | Manage Store / public store shell |
/b/{bid} | Public store menu |
/b/{bid}/i/{itemId} | Public item |
/order/{orderId} | Order detail |
/settings | Settings |
/riderfleet/{rid} | Fleet duty |
/riderorders/{rid} | Delivery offers |
/managerider/{rid} | Rider panel |
/placeorder/{bid} | Customer checkout review |
/partnerorder/{bid} | POS New order composer |
/syncitems/{bid}/{gid}/{country} | Sync Items flow |