Appearance
Frequently Asked Questions
Common questions merchants ask, with answers.
Using Emily
Hi Emily — what can you do for a merchant?
I'm Emily, your in-app assistant. I can help you run your food-service business, including:
- Menus: items, categories, modifiers, variants, allergens, and upsells
- Integrations: POS systems (Hendrickx, MplusKassa, Kassanet, Lightspeed K-Series, ShopCaisse, Square) and payment providers (Stripe, Viva Wallet, Square)
- Settings: locations, business hours, billing, branding, team members, and permissions
- Sales channels: online ordering, kiosk, and QR/table ordering
- Features: loyalty, inventory/stock, offers and discount codes, gift cards, customers, and invoicing
Just tell me what you'd like to do — for example "how do I add a location" or "where are my payment settings" — and I'll guide you to the right place.
Where do I start with onboarding / setup?
Use Guided Setup to walk through the core steps in order — locations, payment profile, menu, and your sales channels (online ordering, kiosk, QR ordering). You can return to Guided Setup at any time to finish remaining steps. Tell me which part you'd like to set up and I'll guide you through it.
Online Ordering
Why does my location show "Currently Closed"?
Possible causes:
- Outside business hours
- Custom availability is enabled with different hours
- Today is a restricted date (holiday)
- Online ordering is disabled
Solution: Check Settings → Locations → Operating hours and Online → Online Ordering.
Why can't customers select certain time slots?
Possible causes:
- Time slot is at full capacity
- Time slot is in the past
- Time slot is outside business hours
- Time-specific rules are limiting that period
Solution: Check Online Settings → Order Capacity (/online-settings). Increase limits or adjust time-specific rules.
Why is delivery not available to some customers?
Possible causes:
- Customer is outside delivery radius
- Customer's postal code not in delivery zone
- Delivery is disabled
- Minimum order amount not met
Solution: Check Online → Online Ordering → Delivery Settings. Expand the radius or add postal codes.
How do I temporarily stop accepting orders?
Quick method: Go to Online → Online Ordering and use the Snooze dropdown at the top of the page. Options: Accept online orders, For 20 min, For 40 min, For 60 min, For the rest of the day, and Do not accept online orders (indefinite). Requires the edit-online-ordering permission — a snooze-sales-channel permission exists as a constant but is commented out of the Sales Channel group and gates nothing.
Scheduled closure: On the same page, use Temporary Closure and set a reopening date. Customers can still place orders, but only for dates on or after that date. Clear the closure to reopen sooner.
Holidays: Add a Restricted Date on the location (Settings → Locations → Restricted Dates).
Recurring daily windows: Use Blocked times under Fulfilment & Scheduling (see "Can I block a recurring busy period?" below).
Can customers order ahead online and eat in?
Yes. Eat in is a third fulfilment option alongside Takeout and Delivery. Go to Online → Online Ordering and turn on Eat in. Customers then order ahead online and eat in at the restaurant at a chosen time.
- It has its own delay (a prep-time adjustment), just like Takeout and Delivery.
- Availability follows your location operating hours; the Accept orders until setting does not apply to eat-in.
- The order is recorded as dine-in / For Here, so your POS gets the right category and VAT.
- To let customers book eat-in for future days, enable it under Fulfilment & Scheduling and set the days in advance.
How do I stop same-day orders after a certain hour?
Use the cut-off times on Online → Online Ordering. Takeout and Delivery each have their own pair:
- Same-day cut-off — after this time, same-day ordering closes and customers must choose a later day.
- Next-day cut-off — after this time, next-day ordering closes and customers must choose a later day.
Turn the cut-off on and set a time (HH:MM).
Can I block a recurring busy period?
Yes. Go to Online → Online Ordering → Fulfilment & Scheduling → Blocked times and click Add blocked time. Each blocked time is a From/To window plus the days of the week it applies to — for example a daily kitchen rush. Pickup and delivery are both affected. With no blocked times, slots simply follow your opening hours.
Can I show customers a message when they open my storefront?
Yes. On Online → Online Ordering, open the Welcome popup section and turn on Show welcome popup. Enter your message, and optionally tick Include business hours in popup. The message is auto-translated into your published languages.
How do I use a custom domain for online ordering?
You can add a custom domain via the Settings page. Go to the Domain menu. There you will find all the required details that you can forward to your website administrator to correctly link the domain.
Once this is configured, go to the submenu Online Ordering to enter and activate your custom domain.
Can I have different menus for lunch and dinner?
Yes! Create separate menus and schedule them:
- Create "Lunch Menu" and "Dinner Menu"
- Go to each menu's settings
- Set availability schedule (e.g., Lunch: 11:00-15:00, Dinner: 17:00-22:00)
Menu & Items
How do I hide an item temporarily?
Change the item's Status. Two ways:
- Items list (fastest): on the item's row, open the actions menu and flip the Unavailable toggle (or Hide). It applies immediately — no save.
- Item form: open the item → Status card (right column) → pick a status → Save.
What each status does:
- Unavailable: the item stays visible to customers but can't be ordered (it shows as sold out). Use this for sold-out or temporarily unavailable items; switching back to Active restores ordering.
- Hidden: the item is removed from the customer menu entirely.
- Inactive: the item is disabled and removed from ordering.
There is no per-item "snooze" and no stock field on the item form. If you track inventory, an item automatically reads as sold out when its stock reaches 0 (adjust stock under Inventory → Overview). There is no back-office setting that controls how long a sold-out item stays hidden — switch its status back yourself, or put stock back on it.
What's the difference between modifiers and variants?
| Modifiers | Variants |
|---|---|
| Add-ons to an item | Versions of an item |
| Customer can select multiple | Customer selects one |
| Examples: Extra cheese, No onions | Examples: Small, Medium, Large |
| Price added to base | Price replaces base |
Use modifiers for customizations and add-ons. Use variants for fundamentally different versions (size, color).
How do I set up a combo/meal deal?
- Create the combo as a single item
- Add modifier groups for each choice:
- "Choose your main" (required, select 1)
- "Choose your side" (required, select 1)
- "Choose your drink" (required, select 1)
- Set combo price as the item price
- Set modifier prices to €0 (included) or extra cost
Can I upload more than one image at a time?
Yes! In the Content submenu you can upload multiple images at once.
Why aren't my allergens showing to customers?
Check:
- Allergens are selected on the item (Product Specifications)
- Clear browser cache and refresh
There is no allergen-display toggle in Online Ordering settings — allergens are per-item data only.
How do I set up upsells (upselling)?
Create an upsell group under Marketing → Upsell Groups → Add:
- Enter a Title (and optional Subtitle — both translatable) and set status to Active.
- Choose a trigger:
- Item — fires when a specific product is in the cart
- Product group — fires when any product from selected categories is in the cart
- Checkout — shown at the checkout step
- Choose where to show it — Checkout and/or In-flow (during ordering). Not needed for the checkout trigger.
- Add the items to suggest and save.
Active groups are shown on both online ordering and the kiosk for that location. You can also manage a product's upsells from the item's Upsell Groups tab (Menus → Items → Edit), or from a location's Upsell Groups tab. Upsell groups are per-location.
Payments
Why are payments failing?
Common causes:
- Test mode: the location is still in Test Mode, so payments are simulated
- Account not verified: Stripe onboarding is incomplete or needs action
- In-person provider not set up: the profile's Viva Wallet / Stripe Terminal side is not finished
- Payment method not enabled: Bancontact is not switched on
Solution: Go to Settings → Payments, open the payment profile, and check its Stripe status and in-person provider status.
How do I switch from test to live payments?
Test mode is a per-location switch on the payment profile, not an account-wide "Live Mode".
- Go to Settings → Payments and open the payment profile.
- Make sure Stripe onboarding shows as ready.
- In the locations list, turn the Test Mode switch OFF for that location.
- Test with a small real transaction.
While Test Mode is on, the location shows a TEST MODE badge and payments are simulated — no real charges — but orders still process normally.
Warning: With Test Mode off, payments are real charges.
Can I accept cash payments?
Online Ordering: No. Online orders are paid by Card or Bancontact. Mplus merchants can additionally enable the Invoice method, where the customer is billed later rather than paying cash.
Kiosk: Depends on terminal. Most kiosks are card-only.
In-House: Yes, through your POS system.
How do refunds work?
Refunds are processed through the order's original payment provider — Stripe for online orders, and Viva Wallet, Stripe Terminal or Square for in-person orders.
The back-office refund dialog supports refunding by amount (Euro) or by item (there is no reason field), but in the current production build no button opens it — the dialog is mounted on the order detail page and never triggered. Until that is wired up, issue refunds from the payment provider's own dashboard.
How do I send my invoices to customers?
Use the Invoice Collection page. It lists business customers who placed orders with the Invoice payment method (these orders are left unpaid/open until billed):
- Open Invoice Collection and go to the Open tab.
- Find the customer (shows open-orders count, oldest order date, total outstanding).
- Click Send, set Days Until Due (default 14, up to 90), and confirm.
All of that customer's open orders are combined into one invoice, issued via Stripe and emailed to them. Track it on the Sent tab; once paid it moves to Paid.
Note: This is different from Billing, which is where Upvendo invoices you for your subscription. The Invoice payment method must be enabled under Online Ordering → Checkout (Mplus locations) for orders to appear here.
How do I let customers pay by invoice for online orders?
Enable the Invoice payment method for online ordering:
- Go to Online Ordering settings → Checkout → Payment methods.
- Turn on Invoice and save.
Business customers can then choose Invoice at checkout instead of paying online; those orders come through as unpaid/open and you bill them later from the Invoice Collection page. The Invoice option is available on Mplus locations only. (Card / Bancontact remain the standard online payment methods; Cash on Delivery is not currently available.)
How do I add a card terminal to a kiosk or device?
Terminals are paired to a device, not to the payment profile:
- Go to Device Management → Devices and open the device (e.g. your kiosk).
- In the Card Reader / Terminal section, click Add Terminal (shown as Pair Reader for Stripe).
- Pair using your in-person provider:
- Viva Wallet — select the terminal from your Viva terminal list and save
- Stripe (in-person) — enter the reader's registration code (+ optional label) and pair
- Square — pair the Square Terminal using the device code shown
After pairing, the section shows the terminal ID and status. Each device has one paired reader at a time. (Requires the edit-devices permission.)
Order Capacity
How do I prevent kitchen overload?
- Open Online Settings → Order Capacity (
/online-settings) and set the time slot duration. - Enter Max orders per slot — for example 10 with a 15-minute slot.
0means no limit. - Optionally enter Max items per slot (
0= no limit). - Open Advanced Options for Protect rush capacity (flexible ordering), Category limits for slow-prep items, and Rush Hour Rules (time-specific rules) for known busy periods.
What's the best time slot duration?
| Restaurant Type | Recommended |
|---|---|
| Fast food | 10-15 minutes |
| Quick service | 15-20 minutes |
| Casual dining | 30 minutes |
| Fine dining | 45-60 minutes |
Rule of thumb: Match your average order prep time.
How does flexible ordering work?
Flexible ordering allows extra orders if their value is low:
- Normal limit: 10 orders per slot
- Flexible limit: Allow up to 15 orders
- Value threshold: €20
Result: If someone orders just a coffee (€3), they can still order even if 10 orders exist, up to 15 total.
Loyalty & Marketing
How do loyalty points work?
Earning: Customer earns points based on spend (e.g., 1 point per €1)
Redeeming: Customer uses points for discount (e.g., 100 points = €1 off)
Example: Customer spends €50, earns 50 points. Later redeems 100 points for €1 off.
Can customers combine offers?
Default: No, only one offer per order.
Exceptions: An individual offer can be marked Can be combined, which allows it to be used together with other offers.
How do I create a "Buy 10 Get 1 Free" offer?
Use a visit-based loyalty program — it counts visits rather than points.
- Go to Marketing → Loyalty and start a new program.
- Choose the Visit Based program type and set the points earned per visit (plus an optional minimum spend to earn them).
- Add a reward and set its visits needed (e.g. 10) and what the customer gets — a discount or a free item.
- Finish the wizard, including the subscription step, to activate it.
(For an amount-based program the reward asks for points needed instead of visits.)
Can I use discount codes, and where is the coupons page?
Yes — but discount codes live on Offers, not on a separate Coupons page. Go to Marketing → Offers, create or edit an offer, set its method to Code, and enter or generate the discount code. Customers enter that code at checkout. For automatic discounts (no code needed), leave the method as Automatic.
There is no working Marketing → Coupons page — the /marketing/coupons route is an empty stub with no navigation entry.
Devices
My kiosk shows "No Menu Available"
Causes:
- No menu assigned to kiosk
- Menu has no items
- All items are unavailable/out of stock
Solution: Go to Device Management → Devices, open the kiosk, and check which Device Profile it uses. Assign the menu in that profile's Menus section.
KDS is not receiving orders
Check:
- KDS is paired and online
- Order source filter includes the channel (Online, Kiosk)
- Category filter includes ordered items
- Network connection is stable
How do I connect a receipt printer?
There is no printer-pairing screen in the back office, but Printer is now a creatable device type under Device Management → Devices (Kitchen Routing v2): a create is just name + location + type, and the server mints the poll token so the device is born activated — there is no code to type in on the hardware.
What you can configure in the back office is receipt content: globally under Settings → Receipts, and per device profile under Device Management → Device Profiles → Receipt Settings.
How do I set up and manage a kiosk?
- Go to Device Management → Devices and add/pair your kiosk device.
- Assign a menu so the kiosk has products to show.
- Assign a device profile to control the kiosk's behaviour — dining options, customer flow and customer identification, section selection, receipt settings, receiving orders, inventory settings, menus, idle settings, and the device schedule. Manage profiles under Device Management → Device Profiles. (Tips are not part of the device profile — they live in In-House Settings → Collect Tips.)
- To take card payments, pair a terminal in the device's Card Reader section (see "How do I add a card terminal to a kiosk or device?").
You can manage multiple kiosks, each linked to a location. If a kiosk shows "No Menu Available", assign a menu to it.
How do I set up a screensaver on the kiosk?
The screensaver is part of the device profile's Idle settings:
- Go to Device Management → Device Profiles and edit the profile.
- Open Idle settings and turn on Idle Screensaver.
- Set the minutes of inactivity before it appears, and upload the screensaver image.
- Save.
The screensaver shows your image when the kiosk is idle; touching the screen returns to ordering. It's separate from the Idle Timeout, which resets an in-progress order back to the welcome screen.
Integrations
Does connecting Square replace Stripe?
For in-person payments, yes. When Square POS is connected, kiosk/terminal payments route to Square Terminal instead of Viva Wallet or Stripe Terminal, and the Payment Profiles page hides profile creation and shows a "Square is handling your payments" placeholder.
Online checkout too. When Square is integrated the backend creates the online payment order in Square — createZestidooPaymentOrder() branches on isSquareIntegrated() and returns Square Web Payments SDK data — and the storefront routes checkout to its Square payment page. Stripe and Viva are bypassed for that merchant.
Can I connect Deliveroo or Uber Eats?
Both are production channels now, with different prerequisites. ONLINE_PRODUCTION_CHANNELS contains shopify, uber_eats and deliveroo alongside Upvendo online ordering and QR/table ordering. Uber Eats is offered to merchants with a connected POS (excluding US merchants). Deliveroo appears only when the platform's services.deliveroo.enabled flag (DELIVEROO_ENABLED, default off) is on — so whether you see it depends on platform configuration, not on your own settings.
In a test environment, the Uber Eats page has a Menu Synchronization card where you select which menus to push and click Sync Menu.
Account & Billing
How do I add team members?
- Go to Settings → Team → Users
- Click Add Member
- Enter email and name
- Select a role (Owner, Manager, Staff, Accountant, or one of your custom roles)
- They'll receive an invitation email
What's the difference between roles?
| Role | Permissions |
|---|---|
| Owner | Everything |
| Manager | Broad operational access — menus, items, modifiers, inventory, offers, loyalty, devices and device profiles, online ordering, receipts, branding, localisation, users, and operational location settings (not location billing, which is owner-only) |
| Staff | Limited: customers, transactions, loyalty points; view-only on inventory, items, categories, modifiers and menus |
| Accountant | Financial and reporting focus — transactions and payment details, transaction exports, tax rates, view-only payment and billing profiles |
There is no merchant-level "Admin" role — admin is a platform-level role, not something you assign to a team member.
You can also build custom roles with your own permission set under Settings → Team → Roles → Add.
How do I change my subscription?
There is no account-wide "plan" to switch. Subscriptions are per channel and per location — kiosk, Kitchen Display, online ordering, loyalty.
- Go to Settings → Billing.
- Open the billing profile.
- Click View Subscriptions to see everything that profile is billed for.
From the same page you can also View Past Bills, View Details, Add Payment Method, and Add Billing Details.
Settings, Navigation & Stock
What can I see on the Settings page? What's important?
The Settings page groups your account-level configuration:
- Payments — payment profiles and providers (Stripe for online ordering; Viva Wallet or Stripe Terminal for kiosk/in-person; Square when connected)
- Billing — billing profiles for your Upvendo subscription
- Team — Users and Roles (who has access and their permissions)
- Locations — your venues, addresses, hours, prep times, and map pin
- Receipts — receipt configuration
- Localizations — Languages and Translations
- Brand — branding profiles (logo, colours) for online ordering and kiosk
- Domains — custom domains for online ordering
- Activity Log — a record of what changed, by whom, and when
- Compliance — data/compliance settings
Set up Payments, Locations, and Team first. You'll only see the sections your role has permission to access.
How do I set up a new location?
- Go to Settings → Locations and click Add Location.
- Select the Payment, Billing, and Branding profiles.
- Enter the location name and contact details.
- Fill in the address and set the map pin.
- Configure operating hours and preparation time.
- Click Save.
Where are my payment settings?
Go to Settings → Payments. There you create and manage payment profiles and set up their providers — Stripe for online-ordering payments, plus the profile's in-person provider (Viva Wallet or Stripe Terminal) for kiosk payments, or Square when connected — and assign profiles to locations. The in-person provider is chosen when the profile is created and cannot be changed afterwards.
Where do I configure delivery settings?
Open Online → Online Ordering → Delivery Settings for the location. There you set the delivery region (postal codes, radius or distance), the delivery fee model, and the minimum order amount. Timing and scheduling live in the Fulfilment & Scheduling section of the same page.
What do primary and secondary colour mean (branding)?
These are set in a branding profile under Settings → Brand. The primary colour is the main accent used for prominent elements like buttons and highlights in your online ordering and kiosk. The secondary colour is a complementary colour for less prominent elements such as backgrounds or secondary buttons.
How do I check my connection with my POS?
Open the integration page for your POS (e.g. Hendrickx, Vanhoutte/Kassanet, MplusKassa) and click Test Connection. The system verifies connectivity with your POS; a successful test also re-checks the webshop payment type and updates the connection status. If the connection is restored, orders that previously failed due to a disconnection are automatically requeued.
How do I manage stock / inventory?
Stock lets you track available quantities so customers see what's in stock and items sell out automatically. Open Inventory / Stock Management to view and adjust stock levels, and set an item's stock to 0 to mark it Sold Out. Tell me whether you want to adjust stock, view stock, or set low-stock alerts and I'll point you to the right place.
Do I need Stripe to take customer payments?
Yes, for online ordering. Stripe processes online-ordering payments (Card and Bancontact) through a Stripe connected account. Stripe also handles your Upvendo subscription billing and the invoices issued from Invoice Collection.
Kiosk / in-person payments use the in-person provider chosen on the Payment Profile — Viva Wallet or Stripe Terminal — or Square Terminal when Square is connected. Set all of this up under Settings → Payments.
Troubleshooting
Where can I see what changed?
Go to Settings → Activity Log. Shows all changes with:
- What was changed
- Who changed it
- When it was changed
- Old and new values
How do I contact support?
- Emily: Ask your assistant (that's me!)
- Help Center: docs.upvendo.com
- Email: support@upvendo.com
- Chat: In-app chat during business hours
I get the error "Location not found" when saving
When you see the error "Location not found" while saving, first check that your location is correctly filled in and verified on the Settings page.
You can verify this by checking whether the details were automatically populated in the Payment Profile section. If they were not, it usually means the Payment Profile has not been validated yet.
Solution: Complete the Payment Profile validation in Settings → Payments before trying again.
Something broke after I changed a setting
- Go to Activity Log
- Find the recent change
- Note the old value
- Revert the setting manually
Tip: Test changes during quiet periods, not during rush hour.