Shopify Custom App by Okeowo AderemiShopify Custom App by Okeowo Aderemi

Shopify Custom App

Okeowo Aderemi

Okeowo Aderemi

Shopify Upsell & Bundle Engine (NestJS)
I'm building an Upsell and Bundle engine for Shopify stores, designed to help merchants lift average order value without adding friction to checkout. The project applies backend engineering practices I'd previously used building NestJS middlewares for a Chrome extension and enterprise third-party integrations, applied here to a Shopify-specific problem: rules that need to stay fast and correct under real traffic, not just in a demo.
The architecture splits the storefront-facing admin (React Router, App Bridge, Polaris) from a standalone NestJS backend that owns the rules engine, data model, and Shopify API integration. That separation lets each side be built, tested, and scaled independently.
Key features:
Six configurable upsell rule types: spend-based thresholds, direct product upsells, true bundles with custom pricing, tag/segment targeting, returning-customer offers, and countdown-driven urgency offers
Modular rule architecture: each rule type is a self-contained NestJS module, so rules can be extended or adjusted without affecting others
Structured data layer: TypeORM entities backed by PostgreSQL enforce a consistent shape for rules, shop settings, and drawer configuration across the app
Redis-backed sessions and caching: keeps rule evaluation fast under load, which matters most during high-traffic sales
Shopify-native integration: OAuth and session handling via @nestjs-shopify, webhook processing, and GraphQL calls to Shopify's Admin API, kept isolated from core business logic so platform changes don't ripple into the rules engine
Cart drawer rendering built around Shopify's Ajax Cart API for real-time sync as offers apply
Still in active development, with a focus on making the rules engine reliable enough to trust at scale before expanding the feature set.
Choose multiple forms of Upsell Strategies and rules for the engine
Choose multiple forms of Upsell Strategies and rules for the engine

Technologies Used

NestJS, Shopify React Router, Shopify Polaris and Tailwind

Impact

Instant, seamless cart experience. The drawer opens automatically when a product is added, so shoppers see their cart (and your offers) without leaving the page.
Replaces the default cart page. Native cart page traffic is redirected straight into the drawer, keeping the upsell experience consistent everywhere.
Built-in free shipping incentive. A progress bar shows shoppers how close they are to free shipping, encouraging them to add just one more item.
Smart offer rules. Set which upsell wins when multiple rules qualify, control how often the same offer reappears, and respect shoppers who've already dismissed an offer, so your store never feels pushy.
Fully customizable targeting and design. Fine-tune which products trigger which offers, and match the drawer's look to your brand.
A/B testing (Pro). Split traffic between two offer variants to see what actually converts.
Like this project

Posted Aug 17, 2026

Retani Kit Upsell is a custom cart drawer app for Shopify that shows the right offer to the right shopper at the right moment.