What is Shopify app development, in plain terms?
Shopify app development is building a separate piece of software that talks to a store through Shopify's APIs and, where needed, shows up inside the Shopify admin or checkout. The app runs on its own server; Shopify calls it, or it calls Shopify, using tokens the store owner approves at install.
That separation is the key idea. Your theme controls how the storefront looks. An app controls what happens behind it: an order arrives and the app sends it to a warehouse, a customer tag changes and the app applies dealer pricing, a stock count drops and the app raises a purchase note. Some apps also add screens to the admin, blocks to the theme, or rules inside checkout through Shopify Functions.
Three kinds of work usually get called “an app”. Knowing which one you want saves a week of back-and-forth:
- Backend integration: no screens, just data moving between Shopify and another system on events or a schedule
- Embedded admin app: pages inside Shopify admin where your staff review, approve or bulk-edit things
- Checkout and storefront logic: Functions, checkout UI extensions and theme app extensions that change what buyers see or pay
Many projects combine two of these. A dealer-pricing app, for instance, needs an admin screen for approvals and a Function that applies the discount at checkout.
When does a store actually need a custom Shopify app?
A store needs custom Shopify app development when a job is repeated often, costs staff time or money, and no App Store app handles it the way your business works. If only one of those is true, you probably do not need one yet.
Strong reasons to build: orders must reach an accounting or ERP system with the right tax lines; a B2B price list depends on customer groups that the standard discount tools cannot express; the warehouse wants one consolidated pick list per courier; returns must follow a rule set that differs per category; or five App Store subscriptions each do a fragment of one job and together cost more every month than a one-time build.
Weak reasons: “we want our own app” with no workflow behind it, or copying a feature a competitor shows. Those usually end as unused software with a hosting bill.
Build when
The rule is specific to you, runs daily, and an error costs real money (wrong GST, wrong stock, wrong price).
Install when
The feature is common (reviews, wishlists, basic bundles) and an established app does it with acceptable speed impact.
Change the theme when
The need is only about layout or content on the storefront; a Liquid section is cheaper than an app.
Custom app vs public app: which kind of Shopify app should you build?
Build a custom app if the software serves one store (or one Shopify Plus organisation); build a public app only if you plan to sell it to many merchants. That single decision changes cost, review and billing more than any feature does.
Shopify's distribution documentation is clear on the split. A custom app installs on a single store, or on several stores that belong to the same Plus organisation, and it does not go through Shopify's app review. A public app can be installed by many stores, needs Shopify approval before listing, and can charge merchants through Shopify's billing system; custom apps cannot use that billing.
Public apps also carry duties a custom app can skip. Shopify's privacy documentation says every app distributed through the App Store must subscribe to three compliance webhooks (customers/data_request, customers/redact and shop/redact) and respond to them, whether or not it stores personal data. Add onboarding screens, plan selection, a listing, support docs and review fixes, and a public app easily takes twice the effort of a private tool with the same core logic.
Our honest suggestion for most brands: build the custom version, run it on your own store for a few months, and only then decide whether other merchants would pay for it.
Which tools does Shopify app development use today?
Current Shopify app development centres on the Shopify CLI, the React Router app template, the Admin GraphQL API, webhooks, and extensions for checkout and themes. Choosing anything else needs a reason.
Shopify's scaffolding guide tells developers to run shopify app init and pick the React Router template, which carries the authentication flow out of the box. Older tutorials mention the Remix template; the same approach now ships under React Router, so an app started on Remix is not wasted, but new work should follow the current template.
For data, the Admin GraphQL API is the default. Shopify's REST reference states that the REST Admin API became legacy on 1 October 2024 and that, from 1 April 2025, all new public apps must be built exclusively with the GraphQL Admin API. Custom apps can still call REST, but building on a legacy API means rework later, so we write new code against GraphQL.
App server
Node.js with the React Router template, a Postgres or MySQL database for sessions and app data, and background jobs for anything slow.
Admin UI
Polaris components so screens look native inside Shopify admin and your staff need no training.
Hosting
A cloud account in your name (AWS, Google Cloud, Render, Fly.io or similar), sized to your order volume.
Shopify Functions and checkout extensions: what can a custom app change at checkout?
Shopify Functions let an app change discounts, delivery options, payment methods and cart validation inside Shopify's own checkout; checkout UI extensions let it add blocks and fields. Both replace the old checkout.liquid edits, which Shopify has retired.
The plan you are on matters here. Shopify's Functions documentation states that only stores on a Shopify Plus plan can use custom apps that contain Shopify Function APIs; public apps that include Functions work on all plans. Likewise, checkout UI extensions for the information, shipping and payment steps are available only to Plus stores. On non-Plus plans, a custom app can still add blocks to the thank-you and order status pages.
Functions compile to WebAssembly and run under tight limits Shopify publishes, including a 256 kB cap on the compiled binary, so they must be small and fast. Shopify recommends Rust for performance and also supports JavaScript. For a dealer discount or a “no COD above a cart value” rule, JavaScript is usually fine; for heavy bundle maths across large carts, Rust is the safer pick.
- Hide cash on delivery for certain pincodes or cart totals
- Tiered B2B discounts by customer tag
- Block checkout if a cart mixes items that cannot ship together
- Rename or reorder delivery options per region
If your store is not on Plus and the rule must live at checkout, read whether Shopify Plus is worth it before paying for the build.
How do webhooks and ERP sync work in a Shopify app?
Webhooks are Shopify's way of telling your app that something happened, such as a new order, a refund or a stock change, so the app can react without polling. Nearly every integration project in Shopify app development is built on them.
Each delivery carries an X-Shopify-Hmac-Sha256 header, a signature the app must verify before trusting the payload. After verification, the app should acknowledge quickly and push the real work into a queue: posting an invoice to an accounting package or booking a courier can take seconds, and slow responses lead to repeat deliveries. Because the same event can arrive twice, every handler must be idempotent, meaning a duplicate order webhook never creates a duplicate voucher.
The other half of sync is reconciliation. Webhooks can be missed during outages on either side, so a nightly job compares recent Shopify orders with what the ERP holds and fixes the gaps. Leave it out and an integration can drop orders quietly, with nobody noticing until the accountant asks.
Shopify to accounting
Orders become sales vouchers with HSN codes and state-wise GST; refunds become credit notes. See our note on Tally and Shopify.
Shopify to warehouse
Paid orders become pick lists; tracking numbers flow back and mark the order fulfilled.
Channels to Shopify
Marketplace orders and stock pulled into one view, covered on the order management system page.
How much does Shopify app development cost, line by line?
Our Shopify app development quotes start at ₹60,000 for a custom app with admin screens and at ₹40,000 for a single integration flow. The final figure is a sum of visible lines, not a mystery number.
A typical itemised quote contains: discovery and a written spec; the app skeleton with authentication and database; each API area (orders, products, inventory, customers, metafields); each external system connection; admin screens; any Function or checkout extension; background jobs and reconciliation; tests; deployment to your cloud account; and handover documents. You can strike lines to fit a budget and add them back later.
Running costs sit outside our fee and are billed to you directly: server and database hosting, error monitoring if you choose a paid tool, and any paid API on the other side (a courier, an SMS gateway, an ERP connector). A small custom app on modest order volume usually runs on a modest server; a public app with thousands of installs needs more.
For store-level budgets beyond the app, see the full cost of running a Shopify store in India.
What makes one Shopify app cost more than another?
The price of Shopify app development tracks risk and surface area: how many systems the app touches and how much damage a bug could do. Screens are rarely the expensive part.
Money and tax logic
Anything that changes a price, a discount or a GST line needs careful tests with real edge cases: partial refunds, exchanges, multi-currency orders.
Data volume
Syncing 200 products is simple; syncing 40,000 variants needs bulk operations, pagination and rate-limit handling.
The other system
A modern REST API with sandbox access is quick. A desktop accounting tool on an office PC, or an ERP with poor documentation, is not.
Checkout involvement
Functions and checkout extensions need extra testing across devices and payment methods because a bug stops sales.
Public distribution
Billing, onboarding, compliance webhooks, listing assets and review cycles add real weeks.
Quotes from other developers for “the same app” vary widely, almost always because one quote includes reconciliation, tests and error handling and the other does not. Ask each bidder to list those lines.
How long does Shopify app development take, phase by phase?
A focused integration takes 2–4 weeks; a custom embedded app with screens, Functions and one or two external systems takes 6–12 weeks. Public apps add review time on top.
Week one is discovery: we read your store setup, list every event the app must react to, and write the spec in plain language. Build begins on a development store that mirrors your products and settings, never on your live store. You get a staging install early, often in week two or three, so your team clicks through real screens instead of reviewing documents.
Testing runs against recorded real-world cases: a COD order cancelled after dispatch, a partial refund, an exchange, a product with 90 variants. Go-live happens on a quiet day with the reconciliation job switched on from hour one, and we watch logs closely for the first week.
- Discovery and written spec: about 1 week
- Skeleton, auth, database and first API calls: 1–2 weeks
- Core logic, admin screens and integrations: 2–6 weeks
- Functions or checkout extensions, if any: 1–2 weeks
- Testing on a development store with real scenarios: 1–2 weeks
- Go-live, monitoring and handover: a few days
Who owns a custom Shopify app and its data?
You should own the code, the hosting account, the database and the app record itself. With a custom app, that means the app is created from your store admin or your own Partner account, not from the developer's.
Here is why it matters. A custom app is tied to the account that created it. If a developer creates it inside their own Partner account and later vanishes, you cannot update the app, rotate its credentials or change its permissions; you can only uninstall it. We avoid that by setting the app up under your ownership on a short call and joining as a collaborator.
At handover you receive: the Git repository with commit history, the deployment scripts, environment variable names (secrets stay in your cloud account), a diagram of which events trigger which actions, and a runbook for common failures such as an expired ERP password or a webhook subscription that stopped delivering.
If a previous developer left you with an app you cannot update, recovering a half-finished project explains the options.
Red flags in a Shopify app development proposal
Many problems in a Shopify app project are visible in the proposal itself. Watch for these before you pay an advance.
- The app will be created under the developer's Partner account with no transfer plan
- Requested API scopes far wider than the job needs, such as full customer read access for a stock sync
- No mention of webhook verification, retries, duplicate handling or reconciliation
- New code planned on the REST Admin API without a reason
- Checkout changes promised on a non-Plus store through custom Functions
- Hosting on the developer's server, billed back to you with a markup
- Testing described only as “we will test it” with no scenario list
- A promise that the app will improve search rankings; apps do not rank stores
A good proposal answers each point in one sentence. If the answers are vague now, expect the same when an order goes missing.
Does a Shopify app slow down the store or hurt SEO?
A backend-only app has no effect on storefront speed or SEO; an app that injects scripts into every page can hurt both. The design choice is ours to make, so we keep code off the storefront unless buyers must see something.
When a storefront element is needed, such as a delivery-date estimate on the product page, we use a theme app extension so the block loads only where the merchant places it, and we keep its JavaScript small. That keeps Core Web Vitals steady and lets you remove the block from the theme editor without editing code.
Apps can help visibility indirectly. A custom app can generate structured product data from metafields, keep stock status accurate for Google Merchant Center, or write clean collection descriptions in bulk. That supports search and AI-search visibility, but it does not guarantee any ranking; nobody can. If the storefront is already slow, fix that first with Shopify speed optimisation, and for rankings talk to a Shopify SEO expert.
Shopify app development for Indian stores: COD, GST and WhatsApp
Indian stores ask for a different set of apps than US stores, because cash on delivery, GST and WhatsApp shape daily operations here. A good Shopify app development partner in India designs for those from the start.
Shopify Payments is not offered in India (India is absent from Shopify's supported-countries list), so Indian stores take UPI and cards through third-party providers. That makes order data from those providers, and COD reconciliation, a common integration target. Custom apps that suit Indian stores well include COD verification before dispatch to cut return-to-origin losses, GST-correct invoice numbering with HSN codes, courier booking across multiple partners by pincode, and WhatsApp messages on order events.
We also design admin screens for how Indian teams work: large tap targets for staff on phones, Hindi labels where helpful, and exports that open cleanly in Excel for the accountant.
WhatsApp flows have their own rules on opt-in and templates, covered on Shopify WhatsApp integration.
Shopify app development checklist before you sign
Run through this list with any developer, including us. Each item takes a minute to confirm and removes a common cause of cost overruns.
- The workflow is written as steps: trigger, data read, decision, data written, who is notified
- You confirmed no existing App Store app does 90% of it at an acceptable price
- Your Shopify plan supports what is proposed (Functions and checkout steps need Plus for custom apps)
- The app will be created under your store or your Partner account
- API scopes are listed and each one is justified
- The external system has API access, credentials and a test environment
- Hosting is in your name and the monthly estimate is written down
- There is a reconciliation job and an error log your team can read
- Test scenarios include refunds, cancellations, exchanges and edge-case variants
- The quote is itemised and nothing is billed before written approval
A worked example: a hypothetical wholesale-and-retail spice brand
This scenario is illustrative, not a client story. Say a spice brand in Kochi sells retail packs on Shopify and also supplies around sixty grocery stores that currently order by phone. The owner wants the stores to order on the same site at wholesale prices, with approvals and credit terms.
A theme cannot do this alone. We would propose a custom Shopify app with three parts. First, an admin screen where staff approve a new wholesale buyer, set a price tier and a credit limit, stored as customer metafields. Second, because the brand is on Plus, a discount Function that applies the tier price at checkout and a cart validation Function that blocks orders above the remaining credit. Third, a webhook flow that sends each wholesale order to the accounting package with the buyer's GSTIN, and a nightly reconciliation job.
That scope would sit on our custom app line, from ₹60,000, likely in the 8–10 week range because of the accounting connection. If the brand were not on Plus, we would suggest a different design: wholesale buyers ordering through a draft-order flow in the app, with staff confirming the price, rather than a Function at checkout.
Maintaining a Shopify app after launch: API versions and upkeep
A Shopify app needs regular upkeep because Shopify's versioning documentation says a new API version ships every three months and each stable version is supported for at least 12 months. An app that is never updated eventually calls a version Shopify no longer supports.
In practice we pin the app to a specific API version, read Shopify's changelog when a new version lands, and bump the version in a planned update with tests run first. Other routine work: rotating credentials when staff change, adjusting when the ERP on the other end updates, watching error logs for failed webhooks, and adding small features as the business changes.
Our two months of free maintenance after launch covers fixes and small adjustments. After that, upkeep continues from ₹8,000/mo if you want it, or your in-house developer takes over using the runbook we hand over. For store-wide support beyond the app, see Shopify maintenance services.
Shopify app development for brands across India
We work remotely, so a D2C label in Bengaluru and a hosiery maker in Ludhiana get the same process: a video call to walk through the workflow, a written spec, staging installs and updates on WhatsApp.
Apparel exporters in Tiruppur, textile traders in Surat, jewellers in Jaipur, brassware makers in Moradabad, home-furnishing units in Panipat and brands in Mumbai, Delhi and Hyderabad tend to need the same few integrations: wholesale pricing, stock sync with a warehouse, and accounting export with GST.
Payment in India is by UPI or bank transfer against an itemised quote. Stores run from abroad pay in USD by Wise, bank wire or PayPal.