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

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.

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 agents transact autonomously without intermediaries, with sub-1ms latency.
Every WordPress site becomes a node in the global UCP commerce network.
Automatic settlements & escrow - zero manual work, zero risk of unauthorized access.
Real-world use cases
AI agent picks the cheapest payment gateway per transaction, in real-time.
AI negotiates pricing and delivery terms with wholesalers based on live stock data.
Sell individual articles, courses, or PDFs for fractions of a cent - no subscription needed.
Funds held in smart contract - auto-released once buyer confirms delivery.
Product prices updated every minute based on demand, competitors, and live costs.
Smart contract pays affiliate commission within milliseconds of a confirmed purchase.
UCP Node v4.0
Core Vitality
Mesh Sync
> 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
"The Universal Commerce Protocol enables AI agents to transact autonomously, removing friction from the global economy."
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.
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


