Skip to main content

Fulfillment Module

Manage orders from Shopify, process pick/pack workflows, generate UPS shipping labels, and track shipments.

Base URL: https://app.proign.com/[tenant]/fulfillment/api

Overview

The Fulfillment module streamlines your order-to-ship process:

  • Automatic order sync from Shopify
  • Pick/pack workflow with barcode scanning
  • UPS label generation and tracking
  • Batch processing for high-volume operations
  • Integration with Inventory module for stock tracking

Key Features

Order Management

Orders are automatically imported from connected Shopify stores. Each order goes through status stages:

pending → processing → picked → packed → shipped → delivered

Pick/Pack Workflow

  1. Pick - Warehouse staff scan items from shelves
  2. Verify - System confirms correct items and quantities
  3. Pack - Items are boxed and weighed
  4. Label - UPS shipping label is generated
  5. Ship - Package is handed to carrier

API Endpoints

Authentication

POST   /api/[tenant]/auth/login             # Operator login
POST   /api/[tenant]/auth/logout            # Logout
GET    /api/[tenant]/auth/me                # Current user info

Orders

GET    /api/[tenant]/orders                 # List orders with filters
GET    /api/[tenant]/orders/[id]            # Get order details
POST   /api/[tenant]/orders/[id]/operations # Execute order operations

Operations: The /operations endpoint accepts actions like pick, pack, ship, cancel via the request body.

Shipments

GET    /api/[tenant]/shipments              # List shipments
POST   /api/[tenant]/shipments              # Create shipment manually
GET    /api/[tenant]/labels/[shipmentId]/png # Download label image

Sync & Settings

POST   /api/[tenant]/sync                   # Trigger Shopify order sync
DELETE /api/[tenant]/sync                   # Clear all data (admin only)
GET    /api/[tenant]/settings               # Get tenant settings
PATCH  /api/[tenant]/settings               # Update settings

Device & Capabilities

GET    /api/[tenant]/capabilities           # User permissions
GET    /api/[tenant]/device-settings        # Device configuration
POST   /api/[tenant]/device-settings        # Save device config

Order Status Flow

Each order progresses through these stages:

StatusDescriptionAction
pendingOrder received from ShopifyAutomatic on sync
processingAssigned to warehouse operatorManual or auto-assign
pickedAll items scanned from shelvespick operation
packedItems boxed, weight recordedpack operation
shippedUPS label generated, tracking number assignedship operation
deliveredCarrier confirmed deliveryUPS tracking update

Batch Processing

For high-volume operations, process multiple orders at once:

  • Batch Pick - Generate a combined pick list for multiple orders, sorted by warehouse location
  • Batch Ship - Generate UPS labels for all packed orders in one operation
  • Batch Sync - Push fulfillment data back to Shopify for multiple orders

Shipping Services

Service CodeNameTypical Transit
groundUPS Ground1-5 business days
3dayUPS 3 Day Select3 business days
2dayUPS 2nd Day Air2 business days
next_dayUPS Next Day Air1 business day

Request Examples

Pick Order

POST /api/[tenant]/orders/[id]/operations
Content-Type: application/json

{
  "action": "pick",
  "items": [
    { "sku": "PROD-001", "quantity": 2 },
    { "sku": "PROD-002", "quantity": 1 }
  ]
}

Ship Order (Generate Label)

POST /api/[tenant]/orders/[id]/operations
Content-Type: application/json

{
  "action": "ship",
  "package": {
    "weight": 2.5,
    "dimensions": { "length": 10, "width": 8, "height": 4 }
  },
  "service": "ground"
}

// Response (200 OK)
{
  "data": {
    "order_id": "ord_abc123",
    "status": "shipped",
    "shipment": {
      "id": "shp_xyz789",
      "tracking_number": "1Z999AA10123456784",
      "carrier": "ups",
      "service": "ground",
      "label_url": "/api/[tenant]/labels/shp_xyz789/png",
      "estimated_delivery": "2026-02-26"
    }
  }
}

Configuration

Configure via PATCH /api/[tenant]/settings:

  • Shopify Store - Connect your Shopify store for order sync
  • UPS Credentials - Add UPS account for label generation
  • Default Location - Set the default warehouse location
  • Auto-fulfill - Automatically mark orders as fulfilled in Shopify

Webhooks

Shopify webhooks are automatically handled:

POST /api/[tenant]/webhooks/shopify        # Shopify webhook receiver

Related