Olo · Enterprise · Menu/POS Integration
Dynamic Pricing by Handoff Mode
Enabling restaurant brands to set different menu prices for delivery vs. pickup, helping them recoup delivery costs without harming the guest experience.
Role: Product designer
Team: Menu / POS Integration
Scope: End-to-end
Status: Shipped · 2024 Q3
▪️ User interviews
▪️ Brainstorming
▪️ Design iterations
▪️ Story mapping
▪️ Implementation planning
▪️ User interviews ▪️ Brainstorming ▪️ Design iterations ▪️ Story mapping ▪️ Implementation planning
The problem
Online food delivery was growing rapidly, but delivery orders cost restaurants more, DSP fees, packaging, logistics. Olo's menu system had no way for brands to reflect this in their pricing. Every menu item had a single price regardless of how the order was fulfilled.
Menu admin supported only one price per item, with no handoff mode awareness
The existing workaround — duplicating menu items per handoff mode — was fragile and required significant manual effort to maintain
A flat global markup didn't work either, because price elasticity varies across items on a menu
Brands needed control at their level, but Olo's dashboard spans brand, company, channel, and store — making configuration complex and high-stakes
Research findings
We interviewed brand admins and worked closely with POS specialists to understand how brands set up and manage their menus. Three key findings shaped the design direction:
Brand-level control was the right entry point
Admins wanted to enable or disable this feature at the brand level, not per store. This drove where in the dashboard the feature needed to live.
Menu inheritance made this deceptively complex
Company menus cascade down to store menus, but stores can override items locally. A price change at the company level doesn't always flow down, and users needed to understand that without being overwhelmed by it.
No single solution fits all brands
Brands differ in how their menus are structured. Some have deep POS integration; others manage pricing more manually. The design had to work across this spectrum without requiring brands to restructure their setup.
The solution
Rather than a one-size-fits-all approach, we designed two paths under a new Dynamic Pricing Settings section — giving brand admins the right tool for their menu setup. Both paths include store selection with all stores on by default.
POS mappings: Use delivery POS mappings
For brands with POS infrastructure. Adds a second POS mapping scoped to delivery at the company menu level. Precise, item-by-item control.
Menu markup: Use menu price markup
For brands who want a simpler approach. Apply a delivery markup percentage across the menu, with optional rounding to $0.05 or $0.09.
MVP was scoped to Olo-native platforms (Serve mobile, web, Kiosk) for Q3 — reusing existing Rails inflation UI patterns to ship faster. Rails Marketplace integrations (DoorDash, UberEats, etc.) were planned as a follow-on enhancement.
Impact
Adoption: Significant brand adoption within 3 months of launch
Revenue: Measurable increase in weekly delivery GMV across adopting brands
Guest experience: No increase in handoff switching or basket abandonment on Serve
Guardrail metrics tracked weekly: handoff mode switching rate and basket conversion rate for delivery orders on Serve — confirming the price increase did not negatively impact guests.