Menu

Shopify Development, CRO, Customer Segmentation

Building a Native VIP Discount System Without Discount Apps

Venba Fragrance needed a reliable way to reward long-standing customers with collection-specific VIP discounts. Instead of adding more apps or jumping straight to Shopify Functions, I built a native Shopify setup using customer segments, automatic discounts, Shopify Flow, metaobjects, and theme-level pricing logic.

Conditional customer segments Automatic Discounts Metaobject as CMS Shopify Flow automation for VIP tag syncing Zero dependency on discount apps
Fazal Jarral - Case Study Venba Fragrance VIP Discount System

Overview

Venba Fragrance came with a familiar Shopify problem: they wanted to reward loyal customers, but every available option felt either incomplete, too app-heavy, or difficult to control.

The requirement was specific. Customers with more than 3 orders and total spend above 300 USD should receive VIP discounts. Those discounts also needed to vary by collection, with different percentages assigned to different product groups.

That kind of pricing logic can become messy quickly if it is pushed into the wrong layer. For Venba Fragrance, the goal was to keep the system native, reliable, and easy to reason about.

The challenge

Venba Fragrance had already tried a few routes before this build.

Different freelancers had attempted partial solutions. A couple of apps had been installed. The result was a patchwork setup that did not fully match the business requirement and created a weaker customer experience.

The challenge was not simply applying a discount. It was making sure the right customer saw the right price on the right collection, while Shopify still enforced the actual discount correctly at checkout.

Shopify Functions could have solved the problem, but before introducing a more custom layer, I wanted to see how far we could go with Shopify’s native features.

Audit findings

Once the requirement was broken down, the structure became clear.

Eligibility should be handled by Shopify customer segments. Discount enforcement should stay inside Shopify automatic discounts. The storefront should only display VIP pricing when the customer and product both qualify.

The existing app-based approach was adding complexity without giving the merchant a cleaner rule system. A native setup offered a better path because Shopify already had most of the required pieces: customer segments, automatic discounts, Shopify Flow, and metaobjects.

A key detail was the collection structure. Venba Fragrance’s discount collections were organized by vendor, and a product could not belong to multiple discount collections. That made the frontend logic more predictable because each product could only resolve to one VIP discount rule.

What I changed

I created one VIP customer segment based on the merchant’s loyalty criteria: more than 3 orders and total spend above 300 USD.

Then I configured three automatic discounts. Each discount targeted the same VIP customer segment, but applied to a different collection with its own discount percentage.

To make the theme logic cleaner, I used Shopify Flow to sync a VIP customer tag. When a customer entered the VIP segment, Flow added the tag. When they no longer qualified, Flow removed it.

From there, I added metaobject entries for the discount rules. Each entry stored the collection reference and the corresponding discount percentage. This gave the theme a structured source of truth instead of forcing collection IDs and percentages directly into Liquid.

Implementation highlights

The frontend pricing logic matched three conditions:

The customer needed the VIP tag. The product needed to belong to an eligible collection. The metaobject entry needed to match that collection and provide the correct discount percentage.

When all conditions were true, the theme calculated and displayed the VIP price on product pages and product cards. If the customer or product did not qualify, the standard price remained unchanged.

This kept the storefront aligned with the actual discount setup while avoiding a dependency on discount apps.

The main tradeoff was keeping the automatic discount configuration and metaobject configuration in sync. Shopify handled enforcement at checkout, while the metaobject gave the storefront enough information to communicate pricing clearly before checkout.

That tradeoff was worth it because it preserved native Shopify discount behavior, kept performance cleaner than an app-heavy setup, and made the logic easier for the merchant to understand.

Outcome

Venba Fragrance ended up with a fully native VIP discount system.

The setup used one customer segment, three automatic discounts, Shopify Flow tag syncing, and metaobject-driven theme logic. VIP customers could see the correct collection-specific pricing before checkout, while Shopify still handled the actual discount enforcement.

The result was cleaner UX, better performance, and zero dependency on discount apps.

No conversion or revenue numbers were provided, so the outcome is best framed around system quality: more reliable discount logic, fewer moving parts, and a clearer pricing experience for eligible customers.

Closing reflection

This project is a good example of why Shopify development is not only about writing theme code.

The valuable part was deciding where each responsibility belonged: segmentation for eligibility, automatic discounts for enforcement, Flow for customer state, metaobjects for configuration, and Liquid for display.

Instead of adding another tool to a messy setup, the final solution used the platform more deliberately. Sometimes the strongest Shopify builds come from understanding what is already available and arranging it well.

Free site audit

Find the speed, app, and CRO issues costing your Shopify store revenue.

Send your store URL. I will review the biggest performance and conversion opportunities and reply with a practical next-step plan.

Book a free audit