Index
01 — Services
02 — About
03 — Work
04 — Also Built
05 — Stack
06 — Contact
Custom Shopify Development · Est. 2018

I build the Shopify apps that
other devs won't touch.

Seven years deep in custom Shopify work — ERP integrations, checkout extensions, FedEx/LTL shipping logic, AWS-backed payment vaults, and the kind of ERP-to-Shopify bridges that make most agencies politely decline. I am a certified Shopify Partner with a published public app as well.

Start a Project See the Work
Custom Apps ERP Integrations Checkout Extensibility Plus Builds Liquid & Theme Dev API Architecture Shipping Logic Custom Apps ERP Integrations Checkout Extensibility Plus Builds Liquid & Theme Dev API Architecture Shipping Logic
01 / Services

What I actually do — beyond theme tweaks and Liquid edits.

→ 001
Most Requested

Custom Shopify Apps

Public and private apps built on Remix + Polaris. App Bridge, GraphQL Admin API, webhooks, OAuth — production-grade architecture that scales past prototype.

→ 002

ERP & System Integration

Bidirectional sync between Shopify and FileMaker, Zoho, NetSuite, or custom ERPs. Inventory, orders, products, customers — automated, reliable, and resilient when APIs deprecate.

→ 003
Checkout Ext.

Checkout Extensibility

Custom shipping rates with carrier API logic (FedEx, LTL freight), checkout UI extensions, post-purchase upsells, and conditional logic merchants thought wasn't possible.

→ 004

Theme & Liquid Customization

Custom themes, performance optimization, mobile-first builds. When you need it done right and not just done.

→ 005

B2B & Wholesale Portals

Reorder portals, location-based pricing, organization approval workflows, multi-location inventory. Built one driving meaningful B2B revenue for a national retailer.

→ 006
Agency Friendly

Overflow & White-label

Available for Shopify Plus agencies needing a senior dev on contract. NDA-friendly, deadline-respecting, no hand-holding required.

Todd Norton — Custom Shopify Developer
Shopify Partner
02 / About

Hi, I'm Todd — and I've spent the last seven years deep inside Shopify.

I'm an independent Shopify developer based out of Temperance, Michigan. Official Shopify Partner with a public app live in the App Store (AI Ready — Catalog IQ), and a long list of private and custom apps shipped for merchants I can't always name.

Most of my work lives in the messy middle of ecommerce: a Shopify storefront on one side, a FileMaker ERP, a Zoho CRM, a FedEx account, or an LTL freight carrier on the other — and a custom app I built quietly translating between them. It's the kind of work that's too niche for a big agency and too gnarly for a junior freelancer, which is exactly where I like to be.

If you've got a project that's been sitting in your backlog because nobody's bid on it yet — let's talk.

Based In Temperance, MI
Building Since 2018
Public App Catalog IQ →
7+
Years building
on Shopify
20+
Custom apps
shipped & maintained
1
Public app live in
the Shopify App Store
API deprecations
survived & counting
03 / Selected Work

Real systems running in production right now.

Case · 01
National Restaurant Supply Retailer
Shopify Plus FileMaker GraphQL Admin API Webhooks REST

A bidirectional ERP ↔ Shopify sync suite that runs hundreds of products and orders every day.

The client runs their entire merchandising and operations workflow inside a FileMaker ERP — product data, multi-location inventory, MAP pricing rules, and shipment status all live there. They needed Shopify to act as a clean storefront that reflects ERP truth in near real time without their team double-entering anything.

Orders Flow → ERP

Every Shopify order is pushed into FileMaker automatically, with line-item detail, fulfillment location, and customer mapping.

Inventory Flow → Shopify

Per-location quantities sync from FileMaker to Shopify so all 20+ store locations show accurate stock to shoppers.

Product Data → Shopify

Weights, prices, MAP rules, and custom fields publish from FileMaker to Shopify — no manual product admin needed.

Fulfillment Status → Shopify

Pick/pack/ship status updates push back to Shopify orders, keeping customer notifications accurate and on time.

ERP SYSTEM FileMaker Products · Inventory Orders · MAP Rules Fulfillment Status CUSTOM APPS Sync Engine STOREFRONT Shopify Plus Storefront · Cart Checkout · Admin 20+ Locations PUSH ORDERS SYNC EVENTS Architecture Bidirectional sync between ERP and storefront
Fig. 01 — Sync architecture, both directions, with order events and inventory deltas flowing every few minutes.
Case · 02
National Restaurant Supply Retailer
AWS Authorize.NET PCI-aware FileMaker

An AWS-backed payment vault that lets in-store sales reps charge a returning customer's card — without ever touching the number.

The client's sales team works the phones and the showroom floor. Repeat customers wanted to be able to "just put it on the card you have on file" — but the team also needed to bring on new customers without ever seeing or storing a card number on a sales rep's screen.

I built a tokenized vault on AWS that handles the secure side, and a workflow where any sales rep can email a customer a secure link that opens a hosted form. The customer enters or edits their card themselves; a token comes back into the ERP. From there, the rep can charge that token in-store.

Secure Customer-Facing Link

Sales rep clicks a button in the ERP; customer gets an email with a tokenized, expiring link to a hosted card form.

Tokenized Vault on AWS

Raw card data never lives in FileMaker — only a token. The rep charges the token; the gateway settles the payment.

Edit, Replace, Reuse

Customers can update their saved card via a new link without calling support. Multi-card support per customer.

Built to Outlast API Changes

Architected so Authorize.NET API deprecations can be handled with a contained update — not a full rewrite.

Fig. 01 - Org-level Admin View / Fig. 02 - Card Form Submission
Case · 03
National Restaurant Supply Retailer
Checkout Extensibility FedEx API Ascent LTL API Cart-Level Preview

Custom checkout shipping rates pulling parcel + LTL freight in real time — with a preview in the cart.

Their catalog mixes small parcel items (a chef's knife) and freight items (a 600-lb walk-in cooler). Standard Shopify shipping rates can't handle both intelligently. They needed real-time FedEx parcel rates for small items, Ascent LTL freight rates for heavy items, and a logic layer to pick the right carrier per cart.

I built a custom Shopify app that integrates with checkout extensibility and exposes the right rates at the right moment — including a cart-side preview so shoppers see realistic shipping before they go through the funnel.

Smart Carrier Selection

Logic per SKU determines whether FedEx parcel, LTL freight, or a hybrid rate gets returned at checkout.

Cart-Side Rate Preview

Shoppers see an estimated shipping cost from the cart — fewer checkout abandons from rate surprise.

Per-Region Rules

ZIP-based logic for regions where freight surcharges or special handling kick in.

Continuously Tuned

Rate logic updated throughout the year as carrier pricing, fuel surcharges, and accessorial rules shift.

YOUR CART Chef's Knife · 8" Qty 1 · 1 lb $129 Walk-in Cooler · 8' Qty 1 · 612 lbs · LTL $8,450 EST. SHIPPING (PREVIEW) FedEx Ground + LTL Freight $487 Logic flow → Detect SKU weight class → Parcel? Call FedEx API → Freight? Call Ascent LTL → Both? Combine + return → Apply regional rules → Surface in cart + checkout
Fig. 02 — Cart-side preview powered by live carrier API calls.
Case · 04
National Restaurant Supply Retailer
B2B Custom Pricing Org Permissions Approval Flows

A B2B reorder portal with org-level permissions, custom pricing, and multi-step approval emails.

The client serves restaurant groups and hospitality chains — buyers who reorder the same SKUs every month, across multiple locations, with negotiated pricing. The default Shopify B2B feature set didn't go deep enough. They needed a portal where the sales team could configure each customer's organization, locations, users, and pricing, and where the buyer side could route orders through their own internal approvers.

Org & Location Hierarchy

One client org can have many locations; users are tied to specific locations or given org-wide access.

Custom Pricing Per Org

Negotiated price modifications managed by the sales team directly from the ERP, applied at checkout.

Approval Email Routing

Orders above thresholds route to designated approvers; nothing fulfills until approval clears.

Reorder in Two Clicks

Past orders surface as reorderable templates — the buyer's most common workflow takes seconds.

Case · 05
National Restaurant Supply Retailer
Storefront App ZIP Distance Logic Multi-Location PDP Integration

A storefront "is this in stock near me" widget that solved a real omnichannel problem.

Shoppers wanted to know: "Is this item actually at the store I plan to visit today?" The default Shopify storefront answers "in stock" or "out of stock" — but with 20+ physical locations, that's not the question being asked.

I built a Shopify app that lives on every product page. The shopper enters a ZIP code; the widget returns each store's live inventory for that product, sorted by distance in miles. The underlying ZIP-to-store mapping gets maintained and tuned throughout the year as new locations open and "local" service areas change.

Per-Location Live Stock

Quantities pull from the ERP-driven Shopify location inventory, so the widget never goes stale.

Distance-Sorted Results

Nearest store first, with miles displayed. Shoppers immediately see the relevant pickup option.

Maintained Over Time

Constant updates to ZIP database and per-location service areas — built to evolve with the business.

PDP-Native Integration

Renders inline on the product page, no popup. Feels like a Shopify-native feature, not a bolt-on.

CHECK STORE INVENTORY Find this product at a store near you 90210 SEARCH Beverly Hills 3.2 mi 12 IN STOCK DETAILS → West Hollywood 5.8 mi 3 IN STOCK DETAILS → Santa Monica 9.4 mi OUT OF STOCK DETAILS →
Fig. 03 — PDP widget mockup. Sorted by distance, color-coded by stock level.
Case · 06
National Restaurant Supply Retailer
Amazon SP-API Google Merchant Center Google Ads Multi-Channel

Multi-channel selling — Amazon orders, Amazon inventory, and Google Shopping feeds all flowing through one app.

Selling on Shopify alone leaves money on the table. The client also moves volume through Amazon and Google Shopping, and both channels need clean, current data pumped into them — orders flowing back, inventory flowing out, product data shaped to each platform's spec.

Amazon Orders → ERP

Amazon orders pull into FileMaker automatically, mapped to internal SKUs and customers like any Shopify order.

Inventory → Amazon (Daily)

Live ERP inventory pushes to Amazon every day so listings reflect what's actually available to ship.

Google Shopping Feeds

Custom-built product feeds for Google Merchant Center that power the client's Google Shopping ad campaigns.

Continuously Maintained

Both APIs change frequently. The integration is structured so deprecations are contained and tunable, not catastrophic.

04 / Also Built

Other custom apps and integrations I've shipped.

Membership
M

Membership Program

Custom tiered membership app with gated pricing, member-only products, and renewal logic synced to the ERP.

Z

Zoho / CRM Integration

Two-way customer and order sync between Shopify and Zoho CRM so sales sees the same customer no matter the channel.

loyalty
L

Loyalty Programs

Points accrual, redemption, and reward triggers integrated with checkout — built around the merchant's existing customer base.

warranty
W

3rd Party Warranty Integration

Connects Shopify product data and orders to a third-party warranty provider's API for instant coverage at checkout.

upsells
U

Checkout Upsells & Add-Ons

Custom checkout UI extensions — accessory add-ons, "last chance" upsells, and extended warranty offers to lift AOV.

G

Gift Card Integration

Bridges ERP-issued gift cards with Shopify so balances are honored consistently across in-store and online purchases.

storeclosure
H

Shop Hours / Closure Messaging

Conditional storefront messaging on grid, PDP, and checkout pages that reflects store hours and temporary closures.

S

Share Cart by Email

Lets shoppers send their cart to a friend — or to a sales rep for a quote — directly from the cart page.

+

Plus More on Request

Smaller utilities, internal tools, and bespoke one-offs — most projects spin off three or four supporting apps along the way.

05 / Stack

Tools I reach for every day.

Remix
App Framework
React
Frontend
Polaris
Shopify UI
GraphQL
Admin API
PHP
Backend
JavaScript
Everywhere
MySQL
Database
Apache / AWS
Infrastructure
06 / Let's Build Something

If your project sounds like "that's complicated" — that's probably my project.

Tell me what you're trying to do. Most replies within one business day. No bidding wars, no race-to-the-bottom pricing, no junior dev shuffling.

Thanks — message received. I'll reply within one business day.