For a publisher operating four stores across four countries and four currencies, developer Fahad Azhar ditched the standard 'install an app' workflow for a fully custom codebase. The shift was enabled by modern AI tools: as Azhar notes, 'AI didn't write it for me, but it made one engineer fast enough to build and maintain all of it.' The move was driven by business logic that off-the-shelf Shopify apps could not express, such as conditional discounts based on complete product sets or hiding cash-on-delivery options only when customers opted for prepayment.
The Logic Apps Can't Handle
Azhar replaced standard plugins with custom Shopify Functions and front-end code to handle specific business rules. The new stack includes a bundle builder that uses a guided quiz to create 2–4 book libraries, a 'frequently bought together' feature that mines real orders to discount only complete sets, and a cart upsell that prompts users to 'complete your library.' It also features a split-shipment fee calculator that charges one fee based on total weight rather than parcel count, and an international upsell bar showing weight against shipping slabs.
Ownership and Control
Beyond checkout logic, the custom stack includes a Claude-based AI shopping assistant and a custom WhatsApp CRM built on Meta’s coexistence API. A critical component is the 'Control Panel,' an embedded admin app that allows non-developers to switch features on or off and change percentages without code changes. This ensures that all data—from orders to stock history—remains in the publisher's own database rather than scattered across vendor dashboards.
The Hidden Costs of Ownership
Owning the code means owning the bugs, and Azhar highlights several critical platform constraints. Shopify’s hard limit of 25 automatic discounts per store forced the team to 'shard' configurations to manage hundreds of product sets. Additionally, deploying payment and delivery customizations via custom apps requires a Shopify Plus plan, a requirement Azhar learned the hard way after deploying code to a non-Plus store. Inventory logic also proved tricky, with initial setups allowing bundles to oversell when underlying book stock was low.
When to Still Pay for Apps
Despite the success of the custom stack, Azhar advises that apps remain the better choice for commodity features like reviews, email marketing, and subscription billing. The math only flips in favor of custom code when a brand has unique rules that no app understands, or when the store is large enough that the maintenance cost is lower than cumulative app fees. For small stores or teams without dedicated engineering capacity, the 'app for that' model remains the most efficient path.
Key Takeaways
- Custom code unlocks complex business logic like conditional discounts and weight-based shipping fees that apps cannot configure.
- AI-assisted development enabled a single engineer to build and maintain a full custom stack, including an inventory ledger with drift checks and a no-code control panel.
- Shopify’s 25-discount limit and Plus-plan requirements for custom functions are major technical hurdles for custom implementations.
The Bottom Line
Replacing Shopify apps with code is a trade-off: you gain control and performance but accept full responsibility for every edge case and API change. For multi-store brands with unique rules, the maintenance debt is worth the rent savings, but for everyone else, the app ecosystem is still the pragmatic choice.