Tom Sailors
Brief · Anonymized case study

Carrier Coverage Gap Delivery Filter

I'd build a targeted delivery customization Function that reads a managed blocklist of known problem zip codes and hides Saturday delivery in only those addresses at checkout. The core is a small admin panel where the merchant can import, view, and manage the list without code—paired with a weekly sync tool that polls the carrier API to catch new coverage gaps before they become customer issues.

A mid-market DTC merchant was offering Saturday delivery at checkout, but the carrier's stated service area didn't match reality—certain zip codes in their stated coverage territory actually had no weekend service, causing missed deliveries and customer support churn. The merchant needed to hide Saturday as an option only in those problem zips without building a full carrier sync system from scratch.
Four pieces
Shipping

Zip Code Blocklist

A private list of zip codes where the carrier doesn't actually deliver Saturday, so the Function knows which addresses to filter.

Shopify metafield + custom app
Admin GraphQL explorer graphql
# Admin GraphQL
mutation SetWeekendBlocklist($metafields: [MetafieldsSetInput!]!) {
  metafieldsSet(metafields: $metafields) {
    metafields {
      id
      namespace
      key
      value
    }
    userErrors {
      field
      message
    }
  }
}

# Variables:
# {
#   "metafields": [
#     {
#       "ownerId": "gid://shopify/Shop/[YOUR_SHOP_ID]",
#       "namespace": "delivery_config",
#       "key": "weekend_blocklist_zips",
#       "type": "json",
#       "value": "[\"90210\",\"60601\",\"10001\"]"
#     }
#   ]
# }
Replace YOUR_SHOP_ID with your shop ID and add your known problem zips as JSON strings in the value array.
Shipping

Checkout Delivery Filter

The Function that runs at checkout, reads the customer's zip and the blocklist, and hides Saturday from delivery options if that zip is on the list.

Shopify Delivery Customization Function
Shipping

Carrier Sync Tool

A weekly scan that calls your carrier's API, compares their stated service areas against your known weekend black holes, and flags new zips to add to the blocklist.

Heroku-hosted sync + admin dashboard
Admin GraphQL explorer or backend scheduled task graphql
# Admin GraphQL — query to fetch current blocklist and update it
query GetBlocklist {
  shop {
    metafield(namespace: "delivery_config", key: "weekend_blocklist_zips") {
      value
    }
  }
}

mutation UpdateBlocklist($metafields: [MetafieldsSetInput!]!) {
  metafieldsSet(metafields: $metafields) {
    metafields {
      id
      value
    }
    userErrors {
      field
      message
    }
  }
}

# Your sync service calls the carrier API, parses the response,
# compares it to shop metafield, and submits the mutation with new zips.
Run this on a weekly cron job to keep the blocklist fresh as carrier coverage changes.
Shipping

Blocklist Admin Panel

A simple dashboard where you can view, add, and remove zip codes from the Saturday blocklist without touching code.

Custom Shopify app (React + Polaris)

Got a similar problem?

Sketch your build in 30 seconds — voice, type, or attach a screenshot.

Sketch the build →