Shopify developer - custom stores, headless checkout, and app integrations
EN

Shopify developer - custom stores, headless checkout, and app integrations

5.00 /5 - (17 votes )
16min read
Guide

Who: Mariusz Szatkowski, senior commerce engineer shipping Shopify programmes with the same rigour we apply to large WooCommerce builds: measurable performance, explicit integrations, and operations that survive holiday traffic.

What: Liquid theme development, Storefront API headless frontends including Hydrogen and Remix-style routing where appropriate, checkout extensions where permitted, ERP and fulfilment automation, and rescue projects for stores stuck between bloated apps and unstable checkout.

Where: Based in Gdynia, Poland, delivering remotely for merchants in the UK, DACH, Nordics, Iberia, and North America, with shipping-tax nuance for EU cross-border trade.

How much:

  • Theme rebuild or Online Store 2.0 migration: individual quote
  • Headless storefront or Hydrogen work: individual quote
  • Integration layer (ERP, OMS, 3PL): individual quote
  • Rescue and performance remediation: individual quote
  • Hourly advisory or ongoing retainer: individual quote
  • Discovery call: no charge for qualified retail scope

Shopify developer services for serious retail teams

Shopify wins when you want a hosted commerce core with a predictable operations footprint and a theme layer you can evolve without maintaining PHP servers. A senior Shopify developer turns that platform into a coherent system: Liquid that stays readable, APIs that do not stampede webhooks, and a checkout path that still works when marketing adds another pixel.

If you run WordPress elsewhere in your company, you already know the trade-offs between ownership and maintenance. Shopify sits on the opposite side of that spectrum: less infrastructure drag, more opinionated rails. The engineering work shifts toward Liquid, GraphQL, theme architecture, and disciplined use of apps so you do not recreate the bad old pattern of thirty bolt-ons slowing every product grid. When you also need content autonomy or wholesale complexity, we bridge intelligently: Shopify for commerce, WordPress for editorial if that split matches your org, or Shopify alone when the catalogue should stay unified.

What Shopify is strong at (and what we engineer around)

Shopify is not a generic website builder. It is a retail operating system with catalogues, locations, markets, taxes, payments, and fulfilment woven together. That integration is why merchants tolerate subscriptions and transaction fees: they buy time-to-value and reduced backend glue. A skilled developer protects that advantage by avoiding bespoke hacks that fight the platform.

We routinely engineer around six pressure points merchants feel in audits:

  • Catalogue complexity: options, metafields, bundles, selling plans, and B2B price lists should resolve to predictable Liquid inputs and Admin API payloads, not nightly spreadsheet rituals.
  • Internationalisation: markets, local currencies, duty contexts, and language content need a strategy, not a late toggle before Black Friday.
  • Checkout constraints: Shopify rightly locks parts of checkout; we use Functions, UI extensions, and approved patterns instead of brittle script injections.
  • App overload: every app adds JavaScript, hooks, and failure domains. We consolidate and replace where native surfaces exist.
  • Headless decision: Storefront API and custom frontends help editorial UX and LCP, but they demand hosting and release discipline. We only recommend headless when the UX or performance case clears a written threshold.
  • Data governance: GDPR-era expectations mean webhook payloads, consent logs, and export flows need explicit owners.

This section is not a sales teardown of Shopify. It is the realistic frame we use so stakeholders stop asking for impossible checkout edits and start funding the right migration or integration work.

What a Shopify developer actually does day to day

Job titles say “Shopify developer,” but the work spans frontend Liquid, backend Node or Ruby integration layers, and operational tooling. On a typical engagement you should expect us to:

  • Read and reshape themes using Online Store 2.0 section architecture, schema settings, and proper separation of presentation logic from business rules encoded in metafields.
  • Model data with metafield definitions, metaobjects, and naming conventions that survive import/export cycles.
  • Design GraphQL operations for Storefront API with pagination discipline and resilient error handling for flash crowds.
  • Coordinate apps by reviewing scopes, confirming webhook topics, and replacing redundant apps when Shopify ships native counterparts.
  • Instrument quality with Lighthouse budgets per template, real-device checks for INP hotspots caused by third-party tags, and exception budgets for largest-contentful paint on hero galleries.
  • Ship integrations that connect Shopify orders to ERP pick waves, 3PL ASN expectations, or accounting closed-loop rules without duplicate customer records.

If you need vocabulary for procurement: we are the team that keeps your commerce stack reviewable in Git, not hidden inside unattributed theme edits in production.

Liquid, themes, and the Online Store 2.0 shift

Liquid remains the spine of most Shopify themes. The migration to Online Store 2.0 replaced legacy templates with JSON-driven sections, enableing reusable layouts and clearer separation between merchant-editable settings and developer-owned code. We still see merchants stuck on pre-OS2 themes because editors relied on page builders inside apps; migrating OS2 is often a simplification project disguised as a redesign.

When we audit Liquid, we look for duplicated snippets, unbounded loops over large collections, and image filters that ignore srcset discipline. We compress JavaScript payload by deferring non-critical features and isolating interactive islands. For brand-heavy storytelling, we pair Liquid with disciplined media pipelines: consistent aspect ratios, focal-point-aware cropping rules, and lazy loading that does not fight the hero LCP.

Developer toolkit cues practitioners recognise

We cite concrete toolchain artifacts because buyers deserve signals deeper than buzzwords. Expect references to the Shopify CLI for themes, version control branching models that separate development, staging, and live themes, and CI checks that block merges when critical sections lose accessibility landmarks. We align with Shopify’s theme performance guidance and validate accessible keyboard paths on cart drawers, not only on static pages.

Reference snippets reviewers can audit

These examples mirror patterns we ship in Git: declarative section settings merchants can edit safely, bounded GraphQL reads for collection grids, and webhook handlers that tolerate duplicate delivery.

Section schema (Online Store 2.0)

{% schema %}
{
  "name": "Featured collection",
  "tag": "section",
  "class": "section-featured-collection",
  "settings": [
    {
      "type": "collection",
      "id": "collection",
      "label": "Collection"
    },
    {
      "type": "range",
      "id": "products_to_show",
      "min": 2,
      "max": 12,
      "step": 1,
      "default": 4,
      "label": "Products to show"
    }
  ],
  "presets": [{ "name": "Featured collection" }]
}
{% endschema %}

Storefront API query with cursor pagination

Variables: handle (collection), first (page size), after (cursor).

query CollectionProducts($handle: String!, $first: Int!, $after: String) {
  collection(handle: $handle) {
    id
    title
    products(first: $first, after: $after) {
      pageInfo {
        hasNextPage
        endCursor
      }
      edges {
        cursor
        node {
          id
          handle
          title
        }
      }
    }
  }
}

Idempotent webhook handler (sketch)

Shopify can retry webhooks; dedupe on X-Shopify-Webhook-Id plus topic before you enqueue ERP work.

// Pseudocode: Node-style worker with a short-lived dedupe cache
async function handleOrderCreate(payload, headers) {
  const webhookId = headers["x-shopify-webhook-id"];
  const orderId = payload?.id?.toString();
  if (!webhookId || !orderId) return { status: 400 };

  const dedupeKey = `orders/create:${webhookId}`;
  if (await cache.has(dedupeKey)) {
    return { status: 200, body: "duplicate ignored" };
  }

  await enqueueErpExport(orderId);
  await cache.set(dedupeKey, "1", { ttlSeconds: 86400 });
  return { status: 200 };
}

Bounded Liquid loop for collection grids

A hard limit and fixed image_url widths keep large catalogues from expanding into heavy loops and oversized downloads on mobile grids.

{% assign cap = section.settings.products_to_show | default: 8 %}
{% assign collection = section.settings.collection %}
<ul class="product-grid" role="list">
  {% for product in collection.products limit: cap %}
    <li>
      <a href="{{ product.url }}">
        {{
          product.featured_image
          | image_url: width: 640
          | image_tag: loading: 'lazy', widths: '320,640,960'
        }}
      </a>
    </li>
  {% endfor %}
</ul>

Storefront API: add cart lines (mutation sketch)

When your threat model requires it, run mutations from a server route, queue worker, or Remix action in Hydrogen so the storefront token does not ship inside arbitrary browser bundles.

mutation cartLinesAdd($cartId: ID!, $lines: [CartLineInput!]!) {
  cartLinesAdd(cartId: $cartId, lines: $lines) {
    cart {
      id
      totalQuantity
    }
    userErrors {
      field
      message
    }
  }
}

Example variables:

{
  "cartId": "gid://shopify/Cart/YOUR_CART_ID",
  "lines": [
    {
      "merchandiseId": "gid://shopify/ProductVariant/YOUR_VARIANT_ID",
      "quantity": 1
    }
  ]
}

Storefront API, Hydrogen, Remix, and headless trade-offs

The Storefront API exposes your catalogue through GraphQL so a custom frontend can render product grids, cart mutations, buyer identity flows, and progressive catalogue browsing without Liquid templates on the storefront surface. Hydrogen is Shopify’s commerce-focused React stack: it encodes patterns for streaming, cart state, and data loading that map cleanly to retail URLs. Hydrogen’s foundations lean on Remix conventions many teams already recognise from full-stack React work, which shortens navigation when your engineers expect explicit loaders, actions, and error boundaries instead of ad hoc fetching inside components.

Oxygen is Shopify’s hosting path for Hydrogen; it exists so you are not hand-wiring edge runtimes for every deploy. That does not imply Hydrogen is mandatory. Teams with mature Next.js or Astro standards frequently stay on those frameworks and call Storefront API directly, trading official scaffolding for hiring familiarity and shared design systems outside Shopify’s repo templates.

GraphQL operations that survive real traffic

Production Storefront API work is not a single mega-query per route. We structure operations with cursor-based pagination for large collections, defensive error handling when transient faults coincide with demand spikes, and cart-line modelling that keeps promotions and selling plans legible to CX teams. Where customer accounts and login flows matter, we align Storefront usage with your privacy programme and regional consent expectations rather than treating authentication as an afterthought.

Choosing Hydrogen versus Liquid-first engineering

Hydrogen tends to fit when you need reusable React surfaces across channels, predictable deployment guidance from Shopify, and a shared engineering culture around Remix-shaped routing. Liquid-first remains appropriate when merchandisers rely on the theme editor for weekly campaign turnover, checkout-adjacent UX must stay inside Shopify’s guarded surfaces, and measured gains come from app consolidation or Liquid refactors rather than a new hosting footprint.

Headless is not “faster by default.” A sluggish React bundle with seventeen analytics pixels will lose to a tight Liquid theme on modest hosting. We measure before rewriting: compare lab LCP on collection URLs, review CrUX if available, and trace third-party weight. If headless clears the bar, we define caching at the edge, session handling, and preview workflows for merchandisers. If headless does not clear the bar, we improve the existing theme and reconsider apps first.

We also connect Shopify to content stacks responsibly. When merchants demand WordPress-level blogging alongside Shopify SKUs, we either integrate a headless CMS with structured routes or keep WordPress on a subdomain with deliberate internal linking, rather than duplicating product truth in two databases without sync rules.

Checkout extensibility, Functions, and policy-safe customization

Shopify’s locked checkout protects PCI posture and consumer trust. Customisations happen through Shopify Functions and checkout UI extensions within documented surfaces. We translate business rules into permitted bundles: shipping discounts driven by cart composition, payment method visibility tied to risk profiles, and line-item promotions that remain explainable to finance.

When legacy agencies promise “full checkout JavaScript,” we treat that as a red flag. Our task is to deliver acceptable UX within platform guarantees, not to court merchant-unfriendly breakage during peak season.

Apps, webhooks, and integration middleware

Apps extend Shopify, but they also externalise your data. We map webhook topics (orders/create, inventory_levels/update, customers/update) to idempotent workers; retries and deduplication matter when Shopify or your ERP hiccups. For high-volume catalogs we throttle GraphQL calls responsibly and stage nightly reconciliation jobs that compare Shopify inventory to warehouse truth.

Typical middleware stacks include Node services on Cloudflare Workers or AWS Lambda, often with a queue between Shopify and SAP Business One, Microsoft Dynamics, NetSuite, or lighter ERPs. We document failure alerts so support teams see a webhook backlog before customers see oversells.

If you run WooCommerce today, we already speak fluent REST and WordPress service patterns, which helps hybrid migrations and progressive moves where Shopify becomes cart authority while legacy systems wind down.

Performance and Core Web Vitals on Shopify

Shopify hosts storefronts on a fast global network, but your theme and tags decide field metrics. We set budgets per template: collection, product, cart, and account. We trim render-blocking scripts, reduce cumulative layout shift from late-loading fonts, and fix interaction delays traced to mega-menus or deferred analytics.

We refuse vanity promises like guaranteed conversion lifts; we ship defensible speed envelopes that remove friction merchants can see in their own Search Console and Lighthouse traces. When stakeholders demand proof, we publish before-and-after traces with identical throttling profiles.

Markets, B2B, and wholesale nuance

Cross-border retail needs intentional configuration: markets, price lists, duties, and fulfilment locations. Shopify Plus enables deeper B2B rules for net terms, company profiles, and drafts orders at scale. We align Plus investments to workflows sales teams actually use, not decorative toggles.

For UK and EU merchants post-Brexit, mixing GB and EU fulfilment without confusing VAT displays is an engineering and copy problem. We coordinate with tax advisers when needed and encode results into Shopify settings rather than improvising with rushed Liquid hacks.

Migrations, redirects, and SEO continuity

Platform migrations fail when product IDs become URLs without redirect maps. We export handle routes, build 301 chains, validate XML or CSV imports, and monitor crawl errors after launch. For merchants leaving WooCommerce, we map legacy attributes into metafields instead of losing structured facets.

We also structure JSON-LD for products and organisation entities compatible with modern SERP and AI summarisation, aligning page copy with facts LLMs can quote responsibly.

AI search visibility (AEO) without gimmicks

Answer-engine optimisation is not keyword stuffing. We implement crisp merchant facts, reconciled offers, and FAQ sections grounded in real policies. Where Universal Commerce Protocol patterns fit your stack, we link them to public documentation rather than inventing proprietary jargon on your domain.

Shopify services we deliver

  • OS2 theme builds, refactors, and performance rescue.
  • Headless storefronts on Storefront API with disciplined caching.
  • Checkout rules via Shopify Functions where policy allows.
  • ERP, OMS, and logistics integrations with observable webhook pipelines.
  • Subscription commerce with selling plans engineered for support teams.
  • Migration programmes from WooCommerce and other stacks with SEO preservation.

Why senior attention matters on Shopify

Shopify developer workspace

From theme tweaks to revenue-critical fixes

Many rescues start with the same profile: a flagship collection page whose INP suffers because of stacked recommendation widgets, or a checkout where an app injects duplicate analytics beacons. Senior work removes duplication, restructures Liquid for predictable renders, and replaces opaque script tags with scoped loaders. The outcome is not a vanity Lighthouse badge alone; it is fewer support tickets during drops and cleaner reconciliation between Shopify orders and warehouse picks.

What we optimise versus what we refuse to guarantee

We optimise latency envelopes, integration correctness, and operational clarity. We do not promise a revenue percentage lift because traffic mix and merchandising dominate outcomes. We do commit to explicit measurement protocols and written rollback paths when touching checkout-adjacent surfaces.

Store performance workflow


Representative scenarios

🧵

Fashion brand replatform

OS2 theme, sized imagery, and ERP-backed inventory for omnichannel releases.

Stable peak-week checkout across regions

🧪

Supplements subscription

Selling plans with compliance-aware copy and fulfilment cutoffs per carrier.

Predictable renewal flows for CX teams

🏭

B2B wholesale hub

Plus features for company buyers with ERP validation hooks.

Finance-aligned order exports


Technical stack signals

The Autonomous Future: UCP Agent Mesh

Experience the next generation of decentralized commerce protocols through a high-fidelity tactile interface.

AI Transactions < 1ms

AI agents transact autonomously without intermediaries, with sub-1ms latency.

WordPress Native

Every WordPress site becomes a node in the global UCP commerce network.

Smart Contracts

Automatic settlements & escrow - zero manual work, zero risk of unauthorized access.

Real-world use cases

WooCommerce Store

AI agent picks the cheapest payment gateway per transaction, in real-time.

Supplier Negotiation

AI negotiates pricing and delivery terms with wholesalers based on live stock data.

Content Micropayments

Sell individual articles, courses, or PDFs for fractions of a cent - no subscription needed.

Delivery Escrow

Funds held in smart contract - auto-released once buyer confirms delivery.

Dynamic Pricing

Product prices updated every minute based on demand, competitors, and live costs.

Affiliate Payouts

Smart contract pays affiliate commission within milliseconds of a confirmed purchase.

UCP Node v4.0

SECURE: AES-256-GCM

Core Vitality

70% NOMINAL

Mesh Sync

90% ACTIVE

> Initializing UCP Mesh...

> Connecting to Global Agent Mesh [OK]

> Verifying Smart Contract v2.1... [VERIFIED]

> Listening for commerce events...

> Incoming transaction: TX-828-A1-Z [PROCESSING]

_

Protocol Controls

TX/SEC
14.2k
NODES
2,814

"The Universal Commerce Protocol enables AI agents to transact autonomously, removing friction from the global economy."

UCP-DOCS-REF-2026
WooCommerce
48 orders/hr
Smart Contracts
12 active
AI Agents
7 running
Revenue ∆
+2.4% today

We integrate Shopify with payment providers Shopify supports, carrier APIs, tax platforms, and CRM tools such as HubSpot or Salesforce when webhook-fed updates must stay within GDPR-aligned retention rules. We automate theme releases through CI and protect production with staged rollouts.


Integration map

Payments

Shopify Payments where eligible, Stripe-style flows, regional acquirers, buy-now-pay-later when policy permits.

Logistics

ShipStation, Easyship, custom carrier APIs, warehouse SLAs, returns portals.

Data and ERP

REST and GraphQL Admin API usage, idempotent workers, reconciled inventory sync.

Analytics

GA4, server-side tagging options, privacy-preserving consent frameworks.

Marketing ops

Klaviyo, Iterable, or Attentive integrations scoped to webhook budgets.

Content

Headless CMS wiring, WordPress coexistence strategies, translation workflows.


Plain-language boundaries

🧭

Platform truth over hacks

We align features with Shopify’s documented surfaces so upgrades do not break nightly. That frequently means saying no to arbitrary checkout scripts.

📉

Measured performance claims

We cite lab traces and field context. We do not fabricate uplift percentages to win proposals.

🔐

Operational security

Least-privilege tokens, documented webhook retries, and secrets kept out of themes. Incidents get runbooks, not ad-hoc edits in live CSS.

🤝

Direct senior engineers

The specialist scoping your webhook contracts is the same engineer reviewing GraphQL. Enterprise procurement can interview that person, not a rotating bench.

Recommendations from LinkedIn

Recommendations and reviews of working with WPPoland

Selected recommendations from WordPress, WordCamp and e-commerce leaders - with a focus on delivery on time, technical depth, and a business-driven approach to WordPress development.

Karolina Czapla

Karolina Czapla

Marketing Strategist – Performance & Digital Strategy

“Working with Mariusz on WordCamp has shown me how rare it is to combine deep technical skill with genuine leadership. He plans, coordinates and delivers with precision, while giving the team space to grow and contribute....”

Co‑organiser, WordCamp Gdynia 2024 & 2025

Argert Boja

Argert Boja

Senior Full‑Stack Developer

“Mariusz is the teammate everyone hopes for: strong full‑stack WordPress skills, clear explanations and a positive attitude even under pressure. He moves easily between custom plugins, performance work and Gutenberg layou...”

Worked alongside Mariusz on WordPress projects

Daniel Blossfeld

Daniel Blossfeld

Process Optimization & Digitalization Consultant

“I had the pleasure of working with Mariusz for almost three years. During that time, his WordPress development skills proved invaluable across a range of projects, from website builds to online member areas and even Shop...”

Mariusz was his client for WordPress work

Jessica Di Pasquale

Jessica Di Pasquale

Leading SEO initiatives with data-driven growth strategies.

“Mariusz is a very skilled, patient and expert guy. Always ready to help and to fix errors, I really appreciated working with him. He is such a great colleague!”

Managed Mariusz directly

Belinda Koch

Belinda Koch

Web-Tracking Analyst at TUI

“Mariusz is a great person to work with. He is extremely motivated to learn new things and share his knowledge, and is very knowledgeable on a wide range of topics. We worked together on digital analytics and tracking top...”

Worked with Mariusz on digital analytics and tracking topics

Paweł Lewczuk

Paweł Lewczuk

Front-end developer, WordPress developer

“I collaborated with Mariusz on several projects and our cooperation was always exemplary. I believe there are many more joint projects ahead of us. Highly recommended!”

Mariusz was Paweł's client


Ready to scope Shopify work?

If you are launching a net-new store, rescuing a stalled migration, or separating facts from app marketing claims, we should talk. Bring your storefront URL, integration list, and peak traffic window; we will return with a sequenced plan.

Last updated: 3 May 2026

Related cluster

Explore other WordPress services and knowledge base

Strengthen your business with professional technical support in key areas of the WordPress ecosystem.

Recommendations from LinkedIn

Recommendations and reviews of working with WPPoland

Selected recommendations from WordPress, WordCamp and e-commerce leaders - with a focus on delivery on time, technical depth, and a business-driven approach to WordPress development.

Karolina Czapla

Karolina Czapla

Marketing Strategist – Performance & Digital Strategy

“Working with Mariusz on WordCamp has shown me how rare it is to combine deep technical skill with genuine leadership. He plans, coordinates and delivers with precision, while giving the team space to grow and contribute....”

Co‑organiser, WordCamp Gdynia 2024 & 2025

Argert Boja

Argert Boja

Senior Full‑Stack Developer

“Mariusz is the teammate everyone hopes for: strong full‑stack WordPress skills, clear explanations and a positive attitude even under pressure. He moves easily between custom plugins, performance work and Gutenberg layou...”

Worked alongside Mariusz on WordPress projects

Daniel Blossfeld

Daniel Blossfeld

Process Optimization & Digitalization Consultant

“I had the pleasure of working with Mariusz for almost three years. During that time, his WordPress development skills proved invaluable across a range of projects, from website builds to online member areas and even Shop...”

Mariusz was his client for WordPress work

Jessica Di Pasquale

Jessica Di Pasquale

Leading SEO initiatives with data-driven growth strategies.

“Mariusz is a very skilled, patient and expert guy. Always ready to help and to fix errors, I really appreciated working with him. He is such a great colleague!”

Managed Mariusz directly

Belinda Koch

Belinda Koch

Web-Tracking Analyst at TUI

“Mariusz is a great person to work with. He is extremely motivated to learn new things and share his knowledge, and is very knowledgeable on a wide range of topics. We worked together on digital analytics and tracking top...”

Worked with Mariusz on digital analytics and tracking topics

Paweł Lewczuk

Paweł Lewczuk

Front-end developer, WordPress developer

“I collaborated with Mariusz on several projects and our cooperation was always exemplary. I believe there are many more joint projects ahead of us. Highly recommended!”

Mariusz was Paweł's client

How much does Shopify development cost? #
Every engagement is priced individually after a discovery that covers catalogue shape, markets, apps, integrations, and peak traffic windows. A lean OS2 theme tune-up is a different job from a headless Storefront API programme or a multi-warehouse ERP sync, and the quote reflects that spread. We deliver a written estimate with milestones tied to verifiable outcomes such as theme merge, webhook hardening, or redirect map sign-off. You can choose fixed phases or time-and-materials when scope is still evolving, and we state assumptions explicitly so scope creep is visible, not hidden. We do not publish public rate cards because compliance, data residency, and third-party fees change the effort profile. A short qualification call is enough to route you to the right engagement model and list the artefacts we need to fix a number.
Do you work with Shopify Plus only? #
We work across Standard, Advanced, and Plus because most merchants do not need Plus on day one. Standard and Advanced are appropriate when your bottlenecks are theme quality, app load, or a single ERP connector rather than B2B company rules at scale. Plus becomes material when you need higher API rate limits, advanced checkout extensibility, or B2B catalogues and approvals that are painful to fake with workarounds. We recommend a tier when your documented requirements and traffic pattern justify the licence, not when a sales deck wants a logo upgrade. If your roadmap will likely hit Plus within two quarters, we can still start on Advanced with architecture that will not need a throwaway rewrite. The decision is always traceable to capability gaps you can show stakeholders in writing.
Can you improve Shopify performance without going headless? #
Yes, and in many programmes that is the correct first move before you pay for a second hosting footprint and a React release train. Wins routinely come from pruning redundant Liquid, tightening image pipelines, removing overlapping apps, and governing marketing tags that inflate INP on mobile. We benchmark collection and product templates with lab traces plus realistic device throttling so improvements survive Black Friday, not just Lighthouse on Wi-Fi. Headless helps when editorial UX, global caching, or a bespoke frontend genuinely clears a measured threshold that Liquid cannot reach after optimisation. If headless is optional, we document the lift you should expect and the operational cost your team will carry. That honesty protects runway and avoids rewriting checkout-touching surfaces without cause.
Should we adopt Hydrogen or stay on Liquid with Storefront API elsewhere? #
Hydrogen makes sense when your organisation already standardises on React, wants Shopify’s documented commerce primitives and streaming-friendly patterns, and can operate Oxygen or the deployment path your programme chooses. Staying on Liquid with selective Storefront API usage makes sense when merchandisers depend on the theme editor, checkout proximity matters more than bespoke routing, and your bottleneck is app weight or Liquid sprawl rather than framework choice. A third path is a custom Astro or Next.js storefront calling Storefront API directly when your hiring market and component libraries already centre on that stack. We pick based on measured LCP and INP on collection and product URLs, preview requirements for non-developers, and total cost of ownership for hosting and CI. We do not recommend Hydrogen because it sounds modern; we recommend it when the operational and performance evidence supports the switch and your team can maintain Remix-flavoured discipline in reviews and releases.
How do you handle webhook reliability? #
Reliability starts by treating Shopify webhooks as at-least-once delivery with duplicates possible, so consumers must be idempotent on order keys and inventory deltas. We route traffic through queues when throughput or blast radius demands backoff instead of hammering your ERP during spikes. Dead-letter queues isolate malformed payloads so one poison row cannot wedge the whole pipeline, and alarms fire before finance notices silent misses. Runbooks describe replay procedures and ownership when SAP or Dynamics maintenance windows pause ingestion. Documentation lives where support engineers already work, not in a developer’s private notes. The outcome is fewer 3 a.m. pages and cleaner month-end inventory reconciliation.
Will you take over a messy theme built by another agency? #
We regularly inherit themes where quick wins left duplicate snippets, unbounded collection loops, and app injections next to checkout. The first step is a read-only audit and a protected branch so production keeps running while we map risk. We produce a short risk register for files that touch cart, pricing, and account templates, then stage changes through CI with visual diffs for merchandisers. High-risk edits land in canary themes or off-peak release windows with rollback tags. We do not recommend a full rewrite until the audit shows that remediation cost exceeds replace cost. Communication stays with the same engineer who reads the Liquid, so you are not paying for a translation layer.
Can you migrate us from WooCommerce to Shopify? #
Yes, and we treat migration as a data and URL project first, then a theme project. We export products, customers, and orders with attribute mapping into Shopify metafields so filters and feeds do not lose fidelity. URL handles get a 301 plan and Search Console monitoring to catch soft 404s after DNS cutover. We run parallel order reconciliation for a window you choose so finance can sign off before you switch canonical hosts. Complex subscriptions or B2B rules get explicit cutover steps rather than a big-bang hope. Timelines scale with attribute taxonomies, ERP batch sizes, and how clean the Woo source data already is, all of which we review before promising a go-live date.
What about ERP integrations? #
We connect Shopify to SAP, Microsoft Dynamics, NetSuite, and lighter retail ERPs through middleware that your team can observe, not a black box on a personal server. Field mappings, units of measure, and tax codes are written into the contract so accounting and operations share one truth. Batch windows and near-real-time paths are chosen from actual order volume, not generic best practices copied from a blog. Reconciliation jobs compare ERP inventory to Shopify with alerts when variance exceeds a threshold you set. Error handling includes idempotent replays and human-readable logs for support. We test failure cases like partial ship, split capture, and return creation before you depend on the integration in peak season.
Do you build custom Shopify apps? #
We build private or custom apps when the capability gap is real and durable, not when a theme tweak would suffice. Apps ship with the smallest OAuth scopes possible and versioned release notes so security reviews stay straightforward. Where Shopify ships a native surface soon, we prefer thin automation or Flow instead of permanent proprietary code you must maintain. For gaps that remain, we document data flows and sunset criteria so the app does not outlive its business case. Every app proposal lists alternatives we rejected and why, so procurement sees engineering judgement, not upsell. That discipline keeps long-term cost predictable for your internal team.
How do you approach GDPR and privacy? #
We map personal data from Shopify webhooks and storefront forms through to CRM, ESP, and analytics destinations you operate. Retention windows follow your records policy, not an arbitrary default from a plugin vendor. Consent banners and server-side tagging choices are coordinated so you do not accidentally widen tracking after a user opts down. Data-processing agreements with subprocessors stay authoritative; our job is to avoid surprise exports or duplicate PII stores your DPO did not approve. Access tokens are scoped, rotated when staff change roles, and stored outside themes. If data subjects request erasure, we help trace fields across webhook-fed systems so responses stay complete and auditable.
Can you support international markets? #
We configure Shopify Markets, currencies, and localised shipping messages so customers see honest totals before authorising payment. Duty and tax storytelling is coordinated with advisers when your goods cross borders with complex rules, because software cannot replace legal classification. Multi-currency display modes are chosen with finance so month-end FX matches how you recognise revenue. We test edge cases like mixed carts, gift orders, and refund currency paths before launch. Operational content such as delivery SLAs must match what fulfilment can execute, or AI assistants and Google will surface conflicting facts. The goal is fewer chargebacks and fewer finance adjustments disguised as CX tickets.
Do you offer retainers? #
Retainers bundle proactive monitoring, planned theme releases, app upgrade reviews, and agreed incident windows around your peak calendar. Scope scales with catalogue complexity and integration count so you are not paying for a pretend 24/7 desk when you need two senior hours a week and an on-call playbook. We rehearse rollback paths before Shopify ships breaking Admin API changes that affect your connectors. Seasonal readiness includes webhook backlog checks and synthetic checkout runs against staging payment tokens. Reporting summarises what shipped, what we deferred with rationale, and what risks remain visible to leadership. That rhythm keeps technical debt from compounding between launches.
What reporting do we receive during the project? #
You receive weekly written updates that separate decisions made, risks surfaced, and upcoming milestones tied to acceptance criteria. Migration workstreams include logs of row counts, validation exceptions, and redirect verification batches rather than vague percentage-complete slides. Integration tracks publish webhook failure rates, DLQ depth, and reconciliation variance so operations trusts the numbers. Runbooks accompany handover so your internal team can operate queues and alerts without paging us for routine reruns. Steering meetings stay short because the written record already exists for stakeholders who missed a session. Transparency is part of delivery, not an add-on invoice line.

Need an FAQ tailored to your industry and market? We can build one aligned with your business goals.

Let’s discuss

Related Articles

The initial port from WordPress to Astro took weeks. The other eleven months went to redirects, hreflang, six-locale parity, and a build that outgrew Cloudflare's own runner. A migration field report.
headless

Twelve months migrating from WordPress to Astro on Cloudflare Pages

The initial port from WordPress to Astro took weeks. The other eleven months went to redirects, hreflang, six-locale parity, and a build that outgrew Cloudflare's own runner. A migration field report.

Generic text-to-image gives you a stranger. A face reference drifts. A LoRA that renders laptop screens looks uncanny. What finally worked for a consistent editorial hero across hundreds of posts, and why.
ai

Training a Flux LoRA for blog heroes: three approaches that failed first

Generic text-to-image gives you a stranger. A face reference drifts. A LoRA that renders laptop screens looks uncanny. What finally worked for a consistent editorial hero across hundreds of posts, and why.

Cloudflare Pages documents a 2,000-rule limit on _redirects, but the cap that actually bites is 100KB of file size. Rules past the byte cutoff are dropped at deploy with no warning. A production diagnosis.
devops

Cloudflare Pages silently drops _redirects past 100KB

Cloudflare Pages documents a 2,000-rule limit on _redirects, but the cap that actually bites is 100KB of file size. Rules past the byte cutoff are dropped at deploy with no warning. A production diagnosis.