Customizations API
Manage customization templates, order-item customizations, and print sheets.
/admin/customizations/templates
List all customization templates available for products
Query Parameters
?product_id=prod_123&category=apparelResponse
{
"success": true,
"data": [
{
"id": "tmpl_001",
"name": "Team Jersey",
"fields": ["name", "number", "team_logo"],
"product_id": "prod_123"
}
]
}/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"
}
}/admin/customizations/print-sheet
Generate a print sheet for multiple orders
Query Parameters
?order_ids=order_123,order_456,order_789&format=pdfResponse
{
"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"
}
}Team Orders API
Create and manage team orders with roster uploads and batch management.
/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"
}
}/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_urlResponse
{
"success": true,
"data": {
"roster_id": "roster_001",
"members_processed": 25,
"uploaded_at": "2026-03-20T15:00:00Z"
}
}/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"
}
}Bundles API
Create and manage product bundles with component management and stock checking.
/admin/bundles
List all product bundles
Query Parameters
?limit=50&offset=0&active=trueResponse
{
"success": true,
"data": [
{
"id": "bundle_001",
"name": "Starter Pack",
"price": 99.99,
"components": ["prod_123", "prod_456"]
}
]
}/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"
}
}/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}
]
}
}Print Queue API
Production pipeline with proof workflow: queued, proof sent, approved, printing, completed.
/admin/print-queueList all print queue items with status filtering
Response
{
"success": true,
"data": [
{ "order_id": "order_789", "status": "proof_sent", "proof_url": "https://...", "assigned_to": "printer_01", "due_date": "2026-03-25" }
]
}/admin/print-queue/{order_id}/proof/approveApprove a proof and advance the order to printing
Response
{
"success": true,
"data": {
"order_id": "order_789",
"status": "printing"
}
}Public Proof API
Customer-facing endpoints for viewing and approving/rejecting design proofs via a token link.
/api/proof/viewView a design proof using a token (sent to customer via email)
Token via Query Param/api/proof/approveApprove a design proof
Token via Query Param/api/proof/rejectReject a design proof with optional feedback
Token via Query Param