A Flexible Promotion System
Challenge
Mapping the Complexity First
Defining the First Scope
From Chaos to Abstraction
Context
Supporting 80% of restaurant promotion needs through modular design.
Restaurant owners had increasingly diverse promotion and operational needs following the pandemic. To support these growing demands quickly, different promotion structures, redemption methods, and operational workflows often relied on one-off solutions that were difficult to maintain and scale. As the platform expanded, these repeated custom implementations created growing complexity across product and engineering workflows.
How might we create a flexible promotion system that balances merchants’ customization needs with long-term scalability?

To better understand the growing complexity of restaurant promotions, I launched an internal research initiative to collect real-world campaign examples across different restaurant types.
Using a company-wide Google Form, I gathered diverse promotion patterns spanning loyalty programs, discounts, bundle deals, member pricing, and redemption methods.
Selected promotion examples gathered from internal research
The initial scope focused on the highlighted promotion mechanics.
I collaborated with marketing and sales teams to categorize promotion patterns based on request frequency and business priority, helping define the initial product scope.
We realized many high-level campaigns, such as birthday rewards or referral programs, were built on top of the same foundational promotion rules.
Rather than designing isolated campaign features, we focused first on building a scalable promotion foundation that could support future campaign variations.
As I analyzed the nine foundational promotion mechanics highlighted above, I realized that creating a promotion was similar to constructing a story scenario.
Each promotion required defining who it was for, when and where it applied, what triggered it, and what reward was offered.


Merchants could already configure most promotion scenarios successfully.
Sales Feedback
Most support requests from fast-service restaurants were related to redemption rather than promotion setup.
Support Tickets
Every Promotion Shared the Same Underlying Structure.
The promotion engine worked. But the redemption became our next challenge.
Good product design is not about solving one problem at a time. It's about identifying patterns and creating solutions that can grow with future needs.

From Abstraction to Configurable UI
Putting the Framework into Practice
Validating the Launch
Rethinking the Redemption
Moving Redemption Before Checkout
Result
Takeaway

Promotion Type
Although the system was built on reusable rule patterns, merchants still think in familiar promotion concepts. To reduce cognitive load, we mapped abstract rules into recognizable promotion types.
Supporting flexible scheduling through progressive configuration.

Time Settings
Reusable customer segments simplified personalized promotion targeting.
Audience Setting
Store and channel targeting followed the same configuration logic.
Location



Promotion Condition & Rewards
Promotion rules were organized into three reusable layers: Core Logic, Business Rules, and Product Scope.
Advanced Setting
Advanced settings handled business-specific rules without increasing the complexity of core promotion logic.
The production experience is no longer accessible, so this walkthrough is demonstrated using the original design prototype.

Core Logic
Each promotion type defined its own trigger conditions, rewards, and usage limits.
Business Rules
Business-specific rules extended the core promotion logic without changing its structure.

Product Scope
Each promotion could be applied to all products or a configurable product subset.
Product Selection
A reusable product picker component supported product selection across all promotion types.
Empty State
View Selection
Product Picker




This framework powered every promotion type.
Promotion Information
Promotion Information translates system rules into customer-facing messaging.



Example Promotion
Buy One, Get One 50% Off
A weekend campaign targeting recently active customers with configurable eligibility, scheduling, usage limits, and payment restrictions.
• Products: Milk Tea
• Audience: Customers active in the
past 7 days
• Schedule: Every weekend, 11 AM–
2 PM & 7 PM–9 PM
• Duration: May 1 – May 31
• Usage: Up to 3 discounts per
order; each customer can
participate up to 3 times, limited
to once per day.y
• Channels: Dine-in, Pickup & Togo
Role
Lead Product Designer
Ownership
Led the design from 0 to 1, transforming ambiguous business needs into a scalable promotion system.
Timeline
Mar 2024 - Oct 2025


After launch, we continued validating the product to identify remaining friction in real restaurant operations.
We revisited the end-to-end redemption journey in fast-service restaurants to understand why promotions slowed down checkout during busy periods.
Both friction points occurred during checkout, where every extra second slowed operations. Promotion discovery and selection were necessary parts of the redemption process, but they didn't have to happen at the cashier.
I moved promotion discovery and selection to customers before they reach the cashier, eliminating two major friction points during checkout.
The reusable framework enabled complex promotion scenarios without custom development.
When an order meets the configured conditions, the corresponding discount is applied automatically.
We observed cashiers during busy periods and found that manual redemption interrupted checkout, slowing table turnover and creating longer customer queues.
Fast-Service Field Research
Once the shared structure became clear, every promotion type became a configuration problem instead of a custom implementation.

Enabled by QR Code & Apple Wallet

The New Redemption Journey
Scan QR Code While Waiting
1
Browse & Select Promotion
Show QR Code at Checkout
Save to Apple Wallet for Next Time

Merchants place a QR sign near the queue. Customers simply scan to access their promotions while waiting.
Customers log in and browse eligible promotions, then select the one they want to use.
A redemption QR code is generated. Cashiers scan it to apply the promotion instantly.
Customers save their pass to Apple Wallet for the instant access on their next visit


2
3
4

Returning customers can access promotion instantly

Why Apple Wallet?
No need to log in again
Pass automatically appears when customers are nearby, reminding them to redeem
Smoother experience encourages more frequent redemptions
Location-based notification
Promotes repeat visits
Instead of implementing one-off promotion requests, we created a modular system that supports approximately 80% of common restaurant promotion scenarios and can be extended with new rules over time.
Built a scalable foundation
Improved merchant experience
Reusable promotion logic replaced repeated custom development, making future campaign expansion significantly easier for both product and engineering teams.
Merchant feedback revealed that while campaign setup had improved, redemption remained a pain point during peak hours. This led to QR code redemption and Apple Wallet integration, extending the design beyond campaign creation into the complete promotion experience.
Reduced engineering dependency
Product
Merchant
Business

