Custom Shopify App Development

Private Shopify apps built around how your business works, from checkout logic to admin tools and background jobs.

Talk to us about your project

We build custom Shopify apps for UK merchants who need the store to do something no App Store app does properly. That covers admin tools, checkout and theme app extensions, Shopify Functions for discounts, delivery and payment rules, Flow actions, B2B pricing, and the webhooks and background jobs behind them.

When do you need a custom Shopify app?

You probably do not need one if an existing app covers the requirement and its limitations do not hurt. A custom app starts to make sense when:

  • The rule is specific to your business, such as pricing by trade account tier, or blocking certain products from shipping to certain postcodes.
  • You are running three or four apps that each cover part of a process and they keep conflicting at checkout.
  • An app stores data you need elsewhere, but has no API or export to get it out.
  • Staff are doing the same manual task in the admin every day, like tagging orders, splitting fulfilments or updating metafields from a spreadsheet.
  • You are on Shopify Plus and have Shopify Scripts or checkout.liquid customisations that need rebuilding.

Should you install an app or build one?

App Store appCustom app
Built forAny merchantYour store only
Fits your exact processSometimes, with workaroundsYes
Ongoing costMonthly subscriptionHosting and optional support
Shopify FunctionsWork on any planNeed Shopify Plus
Your dataHeld by the app developerHeld in your store or your database
Who maintains itThe app developerYou, or us on your behalf

The Functions row catches people out. If you want custom discount or delivery logic on a non-Plus store, the work may need packaging differently, and we explain the options before quoting.

What we build

Embedded admin apps

Tools that appear inside the Shopify admin, built with App Bridge and Polaris so they look and behave like the rest of Shopify. Typical examples are bulk editors for metafields, approval queues for trade account applications, and order review screens for staff. We can also add admin action and block extensions, so a button or panel appears on the order or product page itself.

Shopify Functions

Functions are small programs, written in Rust or JavaScript and compiled to WebAssembly, that Shopify runs on its own infrastructure during cart and checkout. They have strict limits on execution time and size, and in most cases they cannot call external APIs while running, so any data they need has to be in metafields or the input query beforehand. We use them for:

  • Discounts: tiered, bundle, customer-tag or quantity-break pricing.
  • Delivery customisations: hiding, renaming or reordering shipping options based on the cart or address.
  • Payment customisations: hiding pay later or cash on delivery options for certain orders.
  • Cart and checkout validation: minimum order quantities, restricted products or trade-only items.
  • Cart transforms: bundles that expand into their component products for fulfilment.

Checkout and theme app extensions

Checkout UI extensions add fields, upsells, delivery notes or trade account details to checkout. On Plus they can go on the information, shipping and payment steps. On other plans they are limited to the thank you and order status pages.

Theme app extensions put app content on the storefront as app blocks and app embeds. Your team places them in the theme editor, and they are removed cleanly if the app is uninstalled. This is how storefront features should be delivered now, rather than editing theme files from an app. For bigger storefront changes, see Shopify theme development.

Flow triggers and actions

Shopify Flow is available on most plans. A custom app can add its own triggers and actions to Flow, so your team can build automations around your own logic: "when a trade order over a set value is placed, send it to the approval queue", without asking a developer each time.

B2B and wholesale pricing

Shopify's native B2B features (companies, catalogues, price lists, payment terms) cover a lot, and we check those first. Where they fall short, we build custom pricing with Functions, customer metafields and account approval flows.

Webhooks and background jobs

Most of the real work in an app happens away from the screen. Shopify webhooks are delivered at least once, can arrive out of order and can be duplicated, so every handler we write verifies the HMAC signature, responds quickly, and processes the payload in a queue with idempotency checks. Large reads go through the GraphQL Bulk Operations API rather than paginating thousands of requests. Where an app needs to sync with an ERP or 3PL, see Shopify integrations.

How we build Shopify apps

We write apps in TypeScript, using the Shopify app template or a NestJS backend, with PostgreSQL and Prisma for app data and Redis for queues. Apps use the GraphQL Admin API and the Shopify CLI for extensions and deployment.

Shopify releases a new API version every quarter and supports each for at least 12 months. We pin each app to a version and schedule upgrades, so a deprecation does not surprise you. Access scopes are kept to what the app actually needs.

If the project grows into something bigger than a Shopify app, such as a customer portal or a separate mobile app, we also do web application development and React Native app development.

How a project runs

  1. Discovery call. We talk through the problem, your plan, and the apps you already have.
  2. Written scope and fixed quote. You get a document describing what the app will do, what it will not, and a fixed price.
  3. Build in a development store. Nothing touches your live store until it has been tested.
  4. Review. You test with real products, customers and edge cases. We fix what you find.
  5. Launch. We install the app on your store, watch the first orders and webhook deliveries, and fix anything production shows up.
  6. Support. Optional ongoing support for API upgrades, monitoring and new features.

This is one part of our wider Shopify development work.

FAQs

What is the difference between a custom app and a public Shopify app?

A custom app is built for one store or organisation and installed directly, without going through App Store review. A public app is listed on the Shopify App Store for any merchant to install and must meet Shopify's review requirements. Most of what we build for merchants is custom. Note that custom apps using Shopify Functions can only be installed on Shopify Plus stores.

Do we need Shopify Plus for a custom app?

Not for most custom apps. Admin apps, theme app extensions, webhooks, Flow actions and integrations work on any plan. Plus is needed for custom apps that contain Shopify Functions, and for checkout UI extensions on the information, shipping and payment steps. We check your plan against your requirements before quoting.

Can you replace our Shopify Scripts?

Yes. Shopify Scripts have been replaced by Shopify Functions. We go through each script, write down what it actually does, including the edge cases, and rebuild it as a Function. Some scripts can be replaced by native Shopify discounts instead, which means less custom code to maintain.

Who hosts the app?

Shopify runs Functions and extensions itself. Admin apps and background jobs need a server, which we can host and monitor for you, or deploy into your own hosting account. Either way, you can have the source code and the repository.

What happens when Shopify changes its API?

Shopify releases API versions quarterly and supports each for at least 12 months, with deprecations announced in advance. Under a support arrangement we track the changes that affect your app, upgrade the version, test it in a development store and deploy before the old version is retired.

If you have an app idea or a problem an existing app is not solving, talk to us about it.

Have a project in mind?