Yuvraj Raulji | Shopify integrations
Most Shopify integration problems are bought rather than built: an app per system, each with its own sync logic, none of them agreeing on which side is right. The alternative is unglamorous and much cheaper to live with, which is naming the source of truth per field and building one boundary you can test.
Direct answer
Shopify integrates through its Admin API, Storefront API and webhooks, usually with a queue or middleware between it and the other system so neither has to be available for the other to keep working. The connection itself is straightforward. What makes an integration reliable is the contract: for every field, which system is the source of truth, how often it syncs, what happens when a message fails, and how the two sides are reconciled when they drift. Buying an app per system skips that decision, which is why stores with five sync apps still correct data by hand.
Best suited for
- ERP or accounting as the system of record
- 3PL and fulfilment across multiple locations
- Marketing and engagement platforms needing clean customer data
- Replacing several overlapping sync apps with one boundary
The problem
The symptom as the person carrying it would describe it, and the part that shows up in the numbers rather than in the ticket queue.
Three apps sync the same data and disagree
What it costs
Each was bought to solve one problem and none owns the whole picture. Staff learn which one to trust for which field, and that knowledge lives in people rather than in the system.
Stock is wrong often enough that people check manually
What it costs
Oversells, cancellations and a support routine built around distrust of the store. The manual check becomes the process and its cost is never counted, because nobody logs it as a ticket.
Nobody knows a sync failed until a customer says so
What it costs
Failures are silent by default, so a stalled queue looks exactly like a quiet afternoon. By the time it surfaces, the recovery includes an apology and a reconciliation.
API limits are hit during the busy hour
What it costs
Sync backs up precisely when the store is busiest, because the integration was designed for the average rather than the peak. The failure lands on the day the business spent money to create.
Approach
In this order, and the order is the opinion. Most of what goes wrong on this kind of engagement is a step taken before the one it depends on.
Name the source of truth per field
Not per system. Stock may belong to the 3PL while price belongs to Shopify and customer records belong to the CRM. Writing it down settles most of the arguments the integration would otherwise cause.
Write the contract
Fields, direction, frequency and behaviour on failure. A contract makes the integration testable, which means a change on either side gets verified rather than discovered by a customer.
Build one boundary, not four apps
Webhooks and the Admin API through a single integration layer, with retries and a dead letter path. Consolidating overlapping sync apps usually pays for the work on subscriptions alone.
Design for the peak, not the average
Shopify rate limits are generous and finite. Bulk operations, queued writes and backoff belong in the design, because the integration will be tested hardest on the day it matters most.
Reconcile, and alert on drift
Scheduled comparison across the boundary with differences classified rather than dumped into a report nobody opens. It reports; it does not auto-correct, because silent correction across a boundary makes a small discrepancy large.
Scope
Systems
ERP and accounting3PL and fulfilmentCRMPIMMarketing and engagement platforms
Interfaces
Admin APIStorefront APIWebhooksBulk operationsShopify Flow
Reliability
Per-field contractRetry and dead letterRate limit handlingIdempotent writes
Assurance
Reconciliation jobsDrift alertingFailure visibilityApp consolidation
Proof
A Shopify D2C store with checkout and login handled through third-party services, and a custom B2B platform where the integration boundary was the whole product.
Shopify · D2C
Online plant store
India’s most trusted online plant store on Shopify, with OTP login, GoKwik one-page checkout and custom product pages.
ShopifyGoKwik checkoutCustom PDP
Custom platform · B2B
Procurement and approvals platform
Scalable B2B procurement platform streamlining purchase requests and approvals.
B2B workflowsApprovalsIntegrations
Outcome
One boundary instead of several apps
Consolidation removes a monthly cost, a set of overlapping sync behaviours and a maintenance dependency in the same decision. On a mature store it is frequently the clearest return in the whole stack.
Failures that announce themselves
The measurable change is not that syncs stop failing, because they will. It is that a failure is visible in minutes rather than being discovered by a customer, which is the difference between a task and an incident.
The automation figures published on this site, 90% of B2B order and quote processing and 40% off approval cycle time, came from a Magento B2B procurement platform and belong to that page. There is no Shopify integration on the record with a published measurement.
Questions
- Should we use an app or build a custom Shopify integration?
- An app is right when your process matches what it assumes and you are happy to accept its sync model. Build when the source-of-truth rules are specific to your business, when several apps are already overlapping, or when a failure needs to be visible and recoverable on your terms rather than the vendor's.
- How do you decide which system owns a field?
- By asking where the value is created and who is accountable for it being right. Stock is created by the warehouse or the 3PL. Price is usually created in the ERP or in Shopify depending on how promotions run. The test is simple: when the two disagree, whose answer would you act on?
- What happens when the ERP is unavailable?
- With a queue between the systems the store keeps trading and messages deliver when the ERP returns. Without one, an ERP maintenance window becomes a commerce incident, which is the strongest argument against direct synchronous calls between them.
- Do Shopify API rate limits cause real problems?
- They do when an integration was designed against average volume. Bulk operations, queued writes and proper backoff handle the peak, and the peak is exactly when the integration is under the most commercial pressure, so it deserves the design attention rather than the average.
- Can Shopify Flow replace a custom integration?
- For triggering internal actions and simple routing, often yes, and it is worth trying first. It is not a substitute for a bidirectional sync with a contract, retries and reconciliation, and using it as one produces automation nobody can debug.
Next step
Describe what is actually in front of you and we will work out whether this is the right piece of work before anyone scopes it. That conversation is usually shorter than people expect, and it occasionally ends with me saying you do not need the project.