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