Customizations API

Manage customization templates, order-item customizations, and print sheets.

GET /admin/customizations/templates

List all customization templates available for products

Query Parameters

?product_id=prod_123&category=apparel

Response

{
  "success": true,
  "data": [
    {
      "id": "tmpl_001",
      "name": "Team Jersey",
      "fields": ["name", "number", "team_logo"],
      "product_id": "prod_123"
    }
  ]
}
Bearer Token Required
POST /admin/orders/{order_id}/items/{item_id}/customizations

Save customizations for an order item

Request Body

{
  "template_id": "tmpl_001",
  "customization_data": {
    "name": "John Smith",
    "number": "23",
    "team_logo": "logo_url"
  }
}

Response

{
  "success": true,
  "data": {
    "item_id": "item_456",
    "customizations_applied": true,
    "saved_at": "2026-03-20T11:00:00Z"
  }
}
Bearer Token Required
GET /admin/customizations/print-sheet

Generate a print sheet for multiple orders

Query Parameters

?order_ids=order_123,order_456,order_789&format=pdf

Response

{
  "success": true,
  "data": {
    "print_sheet_id": "sheet_001",
    "order_count": 3,
    "item_count": 12,
    "download_url": "https://api.marcsinventory.com/files/sheet_001.pdf",
    "generated_at": "2026-03-20T12:00:00Z"
  }
}
Bearer Token Required

Team Orders API

Create and manage team orders with roster uploads and batch management.

POST /admin/team-orders

Create a new team order

Request Body

{
  "team_name": "Acme Sports",
  "product_id": "prod_789",
  "quantity": 25,
  "deadline": "2026-04-15",
  "customization_template": "tmpl_001"
}

Response

{
  "success": true,
  "data": {
    "id": "teamorder_123",
    "team_name": "Acme Sports",
    "status": "draft",
    "created_at": "2026-03-20T14:00:00Z"
  }
}
Bearer Token Required
POST /admin/team-orders/{id}/roster/upload

Upload CSV roster with team member details for customization

Request (multipart/form-data)

Content-Disposition: form-data; name="file"; filename="roster.csv"
Content-Type: text/csv

name,number,team_logo
John Smith,23,logo_url
Jane Doe,42,logo_url

Response

{
  "success": true,
  "data": {
    "roster_id": "roster_001",
    "members_processed": 25,
    "uploaded_at": "2026-03-20T15:00:00Z"
  }
}
Bearer Token Required
POST /admin/team-orders/{id}/confirm

Confirm team order and proceed to payment/fulfillment

Request Body

{
  "roster_id": "roster_001",
  "notes": "Deliver by April 15"
}

Response

{
  "success": true,
  "data": {
    "id": "teamorder_123",
    "status": "confirmed",
    "total_price": 625.00,
    "confirmed_at": "2026-03-20T16:00:00Z"
  }
}
Bearer Token Required

Bundles API

Create and manage product bundles with component management and stock checking.

GET /admin/bundles

List all product bundles

Query Parameters

?limit=50&offset=0&active=true

Response

{
  "success": true,
  "data": [
    {
      "id": "bundle_001",
      "name": "Starter Pack",
      "price": 99.99,
      "components": ["prod_123", "prod_456"]
    }
  ]
}
Bearer Token Required
POST /admin/bundles

Create a new bundle

Request Body

{
  "name": "Team Starter Pack",
  "description": "Complete team setup",
  "price": 199.99,
  "components": [
    {"product_id": "prod_123", "quantity": 1},
    {"product_id": "prod_456", "quantity": 2}
  ]
}

Response

{
  "success": true,
  "data": {
    "id": "bundle_002",
    "name": "Team Starter Pack",
    "created_at": "2026-03-20T10:00:00Z"
  }
}
Bearer Token Required
GET /admin/bundles/{id}/stock-check

Check stock availability for all components in a bundle

Response

{
  "success": true,
  "data": {
    "bundle_id": "bundle_001",
    "all_in_stock": true,
    "components": [
      {"product_id": "prod_123", "available": 150, "required": 1},
      {"product_id": "prod_456", "available": 75, "required": 2}
    ]
  }
}
Bearer Token Required

Public Proof API

Customer-facing endpoints for viewing and approving/rejecting design proofs via a token link.

GET/api/proof/view

View a design proof using a token (sent to customer via email)

Token via Query Param
POST/api/proof/approve

Approve a design proof

Token via Query Param
POST/api/proof/reject

Reject a design proof with optional feedback

Token via Query Param