Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
40rty-ai avatar

Shopify Admin Fulfillment Location Routing

  • 7 installs
  • 173 repo stars
  • Updated June 26, 2026
  • 40rty-ai/shopify-admin-skills

shopify-admin-fulfillment-location-routing is a Shopify Admin skill that bulk-reassigns open fulfillment orders from one location to another.

About

A Shopify Admin skill that queries open fulfillment orders at a source location and moves them to a destination location using the fulfillmentOrderMove mutation. It handles bulk location transfers in a single workflow for warehouse overflow, location closures, or routing changes. It defaults to a dry-run preview before executing. Operators use it instead of manual per-order reassignment in Shopify Admin.

  • Bulk-moves open fulfillment orders between locations
  • dry_run preview defaults on before committing moves
  • Uses fulfillmentOrders query and fulfillmentOrderMove mutation

Shopify Admin Fulfillment Location Routing by the numbers

  • 7 all-time installs (skills.sh)
  • Ranked #1,587 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Aug 1, 2026 (Skillselion catalog sync)
At a glance

shopify-admin-fulfillment-location-routing capabilities & compatibility

Free; requires an authenticated Shopify CLI session with read_orders and write_fulfillments scopes.

Capabilities
fulfillment routing · bulk order reassignment · warehouse management
Use cases
orchestration
Pricing
Free
From the docs

What shopify-admin-fulfillment-location-routing says it does

Queries open fulfillment orders assigned to a source location and moves them to a destination location.
SKILL.md
Run with `dry_run: true` to confirm the order list and destination before committing.
SKILL.md
npx skills add https://github.com/40rty-ai/shopify-admin-skills --skill shopify-admin-fulfillment-location-routing

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs7
repo stars173
Last updatedJune 26, 2026
Repository40rty-ai/shopify-admin-skills

What it does

Bulk-reassign open Shopify fulfillment orders from one location to another for warehouse overflow or regional routing.

Who is it for?

Moving many open fulfillment orders between warehouses for overflow or regional routing.

Skip if: Fulfilling or shipping orders; it only reassigns the fulfilling location.

When should I use this skill?

When a warehouse is at capacity, a location is closing, or routing rules change.

What you get

Open fulfillment orders moved in bulk from the source location to the destination.

  • List of orders moved between locations
  • Outcome summary of source vs moved counts

By the numbers

  • Paginates 250 fulfillment orders per page
  • 2 GraphQL operations (query + move mutation)

Files

SKILL.mdMarkdownGitHub ↗

Purpose

Queries open fulfillment orders assigned to a source location and moves them to a destination location. Used when a warehouse is at capacity, a location is closing, or regional routing rules change. Replaces manual reassignment in Shopify Admin — this skill handles bulk location transfers for any number of open orders in a single workflow.

Prerequisites

  • Authenticated Shopify CLI session: shopify store auth --store <domain> --scopes read_orders,write_fulfillments
  • API scopes: read_orders, write_fulfillments
  • Both source and destination locations must be active fulfillment locations in Shopify

Parameters

ParameterTypeRequiredDefaultDescription
storestringyesStore domain (e.g., mystore.myshopify.com)
source_location_idstringyesGID of the location to move orders FROM
destination_location_idstringyesGID of the location to move orders TO
order_filterstringnoOptional order name filter (e.g., "#1001,#1002")
dry_runboolnotruePreview moves without executing mutations
formatstringnohumanOutput format: human or json

Safety

⚠️ fulfillmentOrderMove reassigns fulfillment responsibility. This affects which warehouse picks and ships the order. Verify destination location has sufficient stock for all products before moving. Run with dry_run: true to confirm the order list and destination before committing.

Workflow Steps

1. OPERATION: fulfillmentOrders — query Inputs: assignedLocationId: <source_location_id>, status: OPEN, first: 250, pagination cursor Expected output: List of open fulfillment orders; paginate until hasNextPage: false

2. OPERATION: fulfillmentOrderMove — mutation Inputs: id: <fulfillment_order_id>, newLocationId: <destination_location_id> Expected output: movedFulfillmentOrder { id, assignedLocation { name } }, userErrors

GraphQL Operations

# fulfillmentOrders:query — validated against api_version 2025-01
query FulfillmentOrdersByLocation($locationId: ID!, $after: String) {
  fulfillmentOrders(
    assignedLocationId: $locationId
    first: 250
    after: $after
    query: "status:open"
  ) {
    edges {
      node {
        id
        status
        order {
          id
          name
        }
        assignedLocation {
          location {
            id
            name
          }
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
# fulfillmentOrderMove:mutation — validated against api_version 2025-01
mutation FulfillmentOrderMove($id: ID!, $newLocationId: ID!) {
  fulfillmentOrderMove(id: $id, newLocationId: $newLocationId) {
    movedFulfillmentOrder {
      id
      assignedLocation {
        location {
          id
          name
        }
      }
    }
    originalFulfillmentOrder {
      id
      status
    }
    remainingFulfillmentOrder {
      id
      status
    }
    userErrors {
      field
      message
    }
  }
}

Session Tracking

Claude MUST emit the following output at each stage. This is mandatory.

On start, emit:

╔══════════════════════════════════════════════╗
║  SKILL: Fulfillment Location Routing         ║
║  Store: <store domain>                       ║
║  Started: <YYYY-MM-DD HH:MM UTC>             ║
╚══════════════════════════════════════════════╝

After each step, emit:

[N/TOTAL] <QUERY|MUTATION>  <OperationName>
          → Params: <brief summary of key inputs>
          → Result: <count or outcome>

If dry_run: true, prefix every mutation step with [DRY RUN] and do not execute it.

On completion, emit:

For format: human (default):

══════════════════════════════════════════════
OUTCOME SUMMARY
  Orders at source location:  <n>
  Orders moved:               <n>
  Errors:                     <n>
  Output:                     routing_log_<date>.csv
══════════════════════════════════════════════

For format: json, emit:

{
  "skill": "fulfillment-location-routing",
  "store": "<domain>",
  "started_at": "<ISO8601>",
  "completed_at": "<ISO8601>",
  "dry_run": true,
  "outcome": {
    "orders_at_source": 0,
    "orders_moved": 0,
    "errors": 0,
    "output_file": "routing_log_<date>.csv"
  }
}

Output Format

CSV file routing_log_<YYYY-MM-DD>.csv with columns: order_name, fulfillment_order_id, source_location, destination_location, status

Error Handling

ErrorCauseRecovery
THROTTLEDAPI rate limit exceededWait 2 seconds, retry up to 3 times
userErrors on fulfillmentOrderMoveOrder already fulfilled or location inactiveLog error, skip order, continue
Destination location not stockedInsufficient inventory at destinationLog warning per SKU, continue move
No open orders at sourceSource has no pending workExit with summary: 0 orders found

Best Practices

  • Always run with dry_run: true first — moving a fulfillment order does not move inventory; verify destination stock levels separately using the multi-location-inventory-audit skill.
  • Use order_filter to move specific high-priority orders first rather than the entire queue.
  • For location closures, run this skill before the location is deactivated in Shopify Admin.

Related skills

FAQ

Does it move orders immediately?

Not by default. dry_run is true by default, previewing the moves; set dry_run false to execute the fulfillmentOrderMove mutations.

What should I check before moving?

Verify the destination location has sufficient stock for all products, since the move changes which warehouse picks and ships.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.