Introduction

SunFrog Solutions API provides programmatic flexiblity for delivering custom products through any platform.

RESTful API

SunFrog Solutions API is built using the REST methodology, and communicates using common JSON data formatting.

Flexible Integration

SunFrog Solutions API is designed with flexiblity in mind, making it versitile for use with nearly any platform.

On Demand Fulfillment

Leverage the power of SunFrog Solutions fulfillment platform.

Backoffice Tools

Additional management tools are provided through our SunFrog Solutions Manager

Responsive Sales & Support

Need assistance? Our sales and support team are ready to help!

Product Catalog

Access our entire, extensive product catalog through the SunFrog Solutions API. Your custom fulfillment solution awaits!

Authentication

HTTPS / User Key Authentication

The SunFrog Solutions API uses User and API keys for authentication. Your username and key are provided when you create your API account.

All calls must be performed using https protocol. Regular, non-secure http requests will be rejected. API calls that do not use proper authentication keys will be rejected.

Your user and key parameters should be passed in each request through the url as query string parameters, for example:

Example Request URL

https://api.sunfrogsolutions.com/auth/?user=myusername&key=myapikey

As a general rule, requests that are made using GET will be read only. Requests made using POST are intended to update or submit data.

Post request JSON should be submitted via the http request body. Example JSON formatting is provided in the end point sections.

Staging Environment

Test calls can be made on our test environment, using the following URL:
https://devapi.sunfrogsolutions.com/auth/?user=myusername&key=myapikey

Live Environment

Live calls should be made on our live API server:
https://api.sunfrogsolutions.com/auth/?user=myusername&key=myapikey

Testing Authentication

You can test your authentication by sending a request to the AUTH endpoint. The AUTH endpoint will return true or a specific authentication error, if it fails. AUTH accepts POST and GET methods. AUTH endpoint syntax is noted above. No additional parameters are required.

End Points

Catalog

The catalog endpoint provides information on the available products and product variations (colors / sizes of a product), which are available through the SunFrog Solutions API.

/Catalog

Provides top-level product information.
Using the unfiltered version of this call will return top level products available through the API. To obtain variant detail and costs, use the filtered version of this call by sending the ProductStyleId as a URL parameter.

https://api.sunfrogsolutions.com/catalog/?user=myusername&key=myapikey

copy

{
  "products": [
    {
      "core": 1,
      "productStyleId": 1306,
      "coreQty": 2,
      "lowCost": 3.9293,
      "colorOptions": "OL102",
      "typeName": "Ollie Cap - AD527",
      "countryOfOrigin": "US",
      "harmonizedCode": "6504.00.00",
      "highCost": 5.5556,
      "productOptions": [
        {
          "sizeName": "OS",
          "productionCost": 4.00,
          "inventoryAlert": null,
          "inStock": 0,
          "restock_estimate": null,
          "productionApplicationTypeId": null,
          "sizeId": 23,
          "stockQty": 0,
          "sortOrder": 1,
          "cost": 3.92,
          "inventoryid": 25799,
          "colorname": "Black",
          "colorid": 20,
          "altName": "One Size",
          "hexcode": "#000000"
        }
      ]
    }
  ]
}
									
								

/Catalog?productStyleId

Provides option, size and cost information for a specified product. Using the filtered version of this call, you can obtain product colors, sizes and costs for each variant in the product group. The sizeid, colorid, and productStyleId are all parameters that are used when creating your products as well as when placing orders.

https://api.sunfrogsolutions.com/catalog/?user=myusername&key=myapikey&productStyleId=number

Parameter Type
productStyleId Numeric
copy

{
  "products": [
    {
      "core": 1,
      "coreQty": 28,
      "lowCost": 2.35,
      "colorOptions": 5000,
      "typeName": "Heavy Cotton T-Shirt",
      "highCost": 5.23,
      "productOptions": [
        {
          "sizeName": "S",
          "sortOrder": 2,
          "cost": 2.35,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "sizeId": 2,
          "altName": "S",
          "hexcode": "#971b2f",
          "gtin": 1234567989,
        },
        {
          "sizeName": "M",
          "sortOrder": 3,
          "cost": 2.35,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "sizeId": 3,
          "altName": "M",
          "gtin": 1234567988,
          "hexcode": "#971b2f"
        },
        {
          "sizeName": "L",
          "sortOrder": 4,
          "cost": 2.35,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "sizeId": 4,
          "altName": "L",
          "gtin": 1234567987,
          "hexcode": "#971b2f"
        },
        {
          "sizeName": "XL",
          "sortOrder": 5,
          "cost": 2.35,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "sizeId": 5,
          "altName": "XL",
          "gtin": 1234567986,
          "hexcode": "#971b2f"
        },
        {
          "sizeName": "2XL",
          "sortOrder": 6,
          "cost": 4.15,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "sizeId": 6,
          "altName": "XXL",
          "gtin": 1234567985,
          "hexcode": "#971b2f"
        },
        {
          "sizeName": "3XL",
          "sortOrder": 7,
          "cost": 5.23,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "sizeId": 7,
          "altName": "XXXL",
          "gtin": 1234567984,
          "hexcode": "#971b2f"
        },
        {
          "sizeName": "4XL",
          "sortOrder": 8,
          "cost": 5.23,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "sizeId": 8,
          "altName": "XXXXL",
          "gtin": 1234567989,
          "hexcode": "#971b2f"
        },
        {
          "sizeName": "5XL",
          "sortOrder": 9,
          "cost": 5.23,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "sizeId": 9,
          "altName": "XXXXXL",
          "gtin": 1234567989,
          "hexcode": "#971b2f"
        }
      ],
      "productStyleId": 8,
      "artOwnerId": 0,
      "manufacturer": "Gildan",
      "styleDescription": "This heavy cotton t-shirt is made of durable, 5.3 oz, pre-shrunk, 100% cotton material and is perfect for a graphic print. This best-selling, classic fit is ideal for men and women who prefer a little more room in their shirt. 
\r\nDue to product availability, cotton type may vary for 2XL, and 3XL sizes.
\r\nDark Heather is 50/50 cotton/polyester
\r\nSport Grey is 90/10 cotton/polyester
\r\nDouble-needle stitched neckline, bottom hem and sleeves
\r\nQuarter-turned
\r\nSeven-eighths inch seamless collar
\r\nShoulder-to-shoulder taping
" } ] }

Product

The products end point allows you to configure or retrive information on API user-created art and products. The product end point will return art and products that you have created through the manager or API.

/Product

Gets all configured products, or a specific product, if a publicArtId is passed as a parameter.

https://api.sunfrogsolutions.com/product/?user=myusername&key=myapikey

Parameter Type
PublicArtId Numeric (optional)
copy

{
  "productlist": [
    {
      "productType": "pod",
      "MockupID": 1414579704,
      "mockupImage": "https://d2yrwu03yq0f9f.cloudfront.net/mp/126967/126967-1-200326010337220.jpg",
      "description": "This is a great product!",
      "title": "A Great Product",
      "publicArtId": 157277998
    },
    {
      "productType": "pod",
      "MockupID": 1414579398,
      "mockupImage": "https://d2yrwu03yq0f9f.cloudfront.net/mp/126967/126967-1-200326010300774.jpg"cre,
      "description": "Nothing short of amazing.",
      "title": "Amazing T-Shirt",
      "publicArtId": 157277987
    },
    {
      "productType": "pod",
      "MockupID": 1414579397,
      "mockupImage": "https://d2yrwu03yq0f9f.cloudfront.net/mp/126967/126967-1-200326120306368.jpg",
      "description": "Best selling Tee!",
      "title": "Green T-Shirt",
      "publicArtId": 157277986
    }
  ]
}
									
								

/Product

Creates a new product. Products created through this end point can be reused for different orders. Reusing your artwork will make your calls to the orders endpoint faster, as you do not need to recreate and upload your artwork with each individual order. We recommend using this method as it can expedite your orders through the production process.

Print locations and types are indicated by the productionApplicationLocationId and productApplicationTypeId. Values for these parameters are detailed in the "Creating Products" section.

https://api.sunfrogsolutions.com/product/?user=myusername&key=myapikey

Parameter Type
Art Array / Struct
Parameter Type
ArtFile String (URL)
MockupFile String (URL)
ProductionApplicationLocationId Numeric
ProductionApplicationTypeId Numeric
DefaultColor Numeric or String
DesignSKU String (optional, user defined)
productStyleId Numeric
ProductDescription String (optional)
ProductTitle String
Product Type String (POD / PS)
RetailPrice Numeric
mfgSku String (optional - in place of productStyleId, eg: 5000, 3001CVC)
copy

{
  "productDescription": "A Product description",
  "productType": "POD",
  "defaultColor": "Black",
  "productTitle": "A Basic Black T-Shirt",
  "art": [
    {
      "colorCount": 999,
      "mockupFile": "https://d2yrwu03yq0f9f.cloudfront.net/mp/126967/m_126967-front-200131020141651.jpg",
      "productionApplicationTypeId": 1,
      "productionApplicationLocationId": 1,
      "artfile": "https://d2yrwu03yq0f9f.cloudfront.net/mp/126967/m_126967-front-200131020141651.jpg"
    }
  ],
  "retailPrice": 19,
  "productStyleId": 8,
  "designSku": "MySku1234"
}
									
								
copy

{
  "products": [
    {
      "core": 1,
      "productStyleId": 8,
      "coreQty": 109,
      "lowCost": 2.1515,
      "colorOptions": "5000",
      "typeName": "Heavy Cotton T-Shirt",
      "highCost": 5.4545,
      "productOptions": [
        {
          "sizeName": "S",
          "productionCost": 4,
          "inventoryAlert": null,
          "inStock": 0,
          "restock_estimate": null,
          "productionApplicationTypeId": 1,
          "sizeId": 2,
          "stockQty": 0,
          "sortOrder": 2,
          "cost": 2.151515343,
          "inventoryid": 53997,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "altName": "S",
          "hexcode": "#971b2f"
        },
        {
          "sizeName": "M",
          "productionCost": 4,
          "inventoryAlert": null,
          "inStock": 0,
          "restock_estimate": null,
          "productionApplicationTypeId": 1,
          "sizeId": 3,
          "stockQty": 0,
          "sortOrder": 3,
          "cost": 2.151515343,
          "inventoryid": 53998,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "altName": "M",
          "hexcode": "#971b2f"
        },
        {
          "sizeName": "L",
          "productionCost": 4,
          "inventoryAlert": null,
          "inStock": 0,
          "restock_estimate": null,
          "productionApplicationTypeId": 1,
          "sizeId": 4,
          "stockQty": 0,
          "sortOrder": 4,
          "cost": 2.151515343,
          "inventoryid": 53999,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "altName": "L",
          "hexcode": "#971b2f"
        },
        {
          "sizeName": "XL",
          "productionCost": 4,
          "inventoryAlert": null,
          "inStock": 0,
          "restock_estimate": null,
          "productionApplicationTypeId": 1,
          "sizeId": 5,
          "stockQty": 0,
          "sortOrder": 5,
          "cost": 2.151515343,
          "inventoryid": 54000,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "altName": "XL",
          "hexcode": "#971b2f"
        },
        {
          "sizeName": "2XL",
          "productionCost": 4,
          "inventoryAlert": null,
          "inStock": 0,
          "restock_estimate": null,
          "productionApplicationTypeId": 1,
          "sizeId": 6,
          "stockQty": 0,
          "sortOrder": 6,
          "cost": 4.303030686,
          "inventoryid": 5,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "altName": "XXL",
          "hexcode": "#971b2f"
        },
        {
          "sizeName": "3XL",
          "productionCost": 4,
          "inventoryAlert": null,
          "inStock": 0,
          "restock_estimate": null,
          "productionApplicationTypeId": 1,
          "sizeId": 7,
          "stockQty": 0,
          "sortOrder": 7,
          "cost": 5.45454594,
          "inventoryid": 54001,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "altName": "XXXL",
          "hexcode": "#971b2f"
        },
        {
          "sizeName": "4XL",
          "productionCost": 4,
          "inventoryAlert": null,
          "inStock": 0,
          "restock_estimate": null,
          "productionApplicationTypeId": 1,
          "sizeId": 8,
          "stockQty": 0,
          "sortOrder": 8,
          "cost": 5.45454594,
          "inventoryid": 7,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "altName": "XXXXL",
          "hexcode": "#971b2f"
        },
        {
          "sizeName": "5XL",
          "productionCost": 4,
          "inventoryAlert": "Gildan 5000 Antique Cherry Red 5x out of stock until 04/13",
          "inStock": 0,
          "restock_estimate": "April, 13 2021 00:00:00",
          "productionApplicationTypeId": 1,
          "sizeId": 9,
          "stockQty": 0,
          "sortOrder": 9,
          "cost": 5.45454594,
          "inventoryid": 54002,
          "colorname": "Antique Cherry Red",
          "colorid": 3,
          "altName": "XXXXXL",
          "hexcode": "#971b2f"
        }
      ]
    }
  ]
}
									
								

/Product

Updates an existing product.

https://api.sunfrogsolutions.com/product/?user=myusername&key=myapikey

Parameter Type
PublicArtId Numeric
ProductTitle String (optional)
Description String (optional)
copy

{
  "productTitle": "A New Title",
  "description": "This is a new description",
  "publicArtId": 123456789
}
									
								
copy

{
	"message":"Product Updated"
}
									
								

Orders

The orders end point allows you to submit orders, and retrieve existing order status.

/orders

Submits a new order, or an array of orders. Product identifiers can be provided in the following ways:

  • Using an existing productid, size, color
  • Using a barcode format
  • By creating a new product at the time of order

Shipping methods can be indicated if you are using your own UPS, FedEx or USPS account. Alternate methods are only available if you are providing your own shipping. For a list of valid shipping codes, please contact our developers.

https://api.sunfrogsolutions.com/orders/?user=myusername&key=myapikey

Parameter Type
OrderId String (optional) Reference to an external orderid.
QuoteOrder True / False (optional) Returns order pricing without committing order.
Name String
Address1 String
Address2 String (optional)
City String
State String
Country String
Email String
Phone String (optional)
ShipCarrier String (optional - if setup with passthru shipping, eg: UPS / USPS / FEDEX)
ShipMethod String (optional - if setup with passthru shipping, eg: Economy Mail Innovations, 2nd Day Air)
Items Array / Struct
Parameter Type
Qty Numeric
OrderItemId String (optional) - Your orderitemid
Existing Product
productStyleId Numeric
ColorId Numeric or String (ColorName or ColorId can be used alternatively)
ColorName Numeric or String (ColorName or ColorId can be used alternatively)
PublicArtId Numeric
SizeId Numeric (SizeName or SizeId can be used alternatively)
SizeName String (SizeName or SizeId can be used alternatively)
mfgSku String (optional - repaces productStyleId, must be a valid manufacturer sku (3001, 8000, etc))
Barcode / UPC
UPC String
(optional, can be used in place of colorid, productStyleId, sizeid, publicartid)
Product created within Order
Product Struct / Array
Parameter Type
Art Array / Struct
Parameter Type
ArtFile String (URL)
MockupFile String (URL)
ProductionApplicationLocationId Numeric
ProductionApplicationTypeId Numeric
DesignSKU String (optional)
ProductDescription String (optional)
ProductTitle String
Product Type String (POD / PS)
RetailPrice Numeric
copy

{
  "orders": [
    {
      "orderid": 12345
      "postalcode": 10001,
      "city": "New York",
      "country": "US",
      "phone": 1234567897,
      "state": "NY",
      "address1": "101 Main St.",
      "email": "help@sunfrog.com",
      "name": "Bob Customer",
      "address2": "",
      "items": [
        {
          "qty": 1,
          "productStyleId": 8,
          "colorId": 20,
          "publicArtId": 157247895,
          "sizeId": 3
        }
      ]
    }
  ]
}
									
								
copy

{
  "errors": [],
  "orders": [
    {
      "customerOrderId": 123,
      "shippingType": "",
      "phone": 0000000000,
      "state": "MI",
      "items": [
        {
          "proofImageDir": "mp/126967/",
          "mockupId": 1413825135,
          "billingItemAddOns": [
            {
              "addonTitle": "DTG - [GT3]",
              "productionApplicationTypeId": 1,
              "productionApplicationLocationId": 1,
              "addonCost": 7
            }
          ],
          "upc": "",
          "sizeId": 4,
          "costGarment": 2.35,
          "costTotal": 9.35,
          "productStyleId": 8,
          "shippingTotal": 3.27,
          "status": "Waiting",
          "proofImage": "126967-front-200317050305118.jpg",
          "altSizeName": "L",
          "qty": 1,
          "custom": "",
          "colorId": 20,
          "costProductionTotal": 7,
          "publicArtId": 157247895,
          "weight": 7.3,
          "serviceType": "POD"
        }
      ],
      "email": "",
      "iso3": "",
      "iso2": "US",
      "costTotal": 9.35,
      "orderid": 123,
      "shipWhere": "USPS 2-5 Days",
      "country": "US",
      "mailPiece": "Thick Envelopes",
      "totalItems": 1,
      "address1": "101 Main St.",
      "weight": 14.6,
      "shipTotal": 3.27,
      "address2": "",
      "postalcode": 10001,
      "priorityProcessing": 0,
      "serviceCode": "",
      "costAddOns": 0,
      "mailClass": "First Class",
      "name": "Joe Customer",
      "batchId": 2,
      "city": "New York",
      "publicOrderId": 20
    }
  ],
  "mode": "test",
  "hasErrors": false
}
									
								
copy

{
  "orders": [
    {
      "address1": "1234 Main St.",
      "email": "some@email.com",
      "name": "Joe Customer",
      "address2": ""    	
      "postalcode": 10001,
      "orderid": 456,
      "city": "New York",
      "country": "US",
      "phone": 1234567890,
      "state": "NY",
      "items": [
        {
          "productStyleId": 204,
          "sizeName": "L",
          "product": {
            "productDescription": "Amazing Sweatshirt!",
            "productTitle": "Sweatshirt",
            "art": [
              {
                "mockupFile": "https://s3.amazonaws.com/artfiles.sunfrog.com/1538/126967/126967-front-191230101247244.png",
                "productionApplicationTypeId": 1,
                "productionApplicationLocationId": 1,
                "artfile": "https://s3.amazonaws.com/artfiles.sunfrog.com/1538/126967/126967-front-191230101247244.png"
              }
            ],
            "retailPrice": 29.99,
            "designSku": ""
          },
          "qty": 1,
          "colorId": 20
        }
      ]
    }
  ]
}
									
								
copy

{
  "errors": [],
  "orders": [
    {
      "customerOrderId": 123,
      "shippingType": "",
      "phone": 0000000000,
      "state": "MI",
      "items": [
        {
          "sizeName": "L",
          "proofImageDir": "",
          "mockupId": 8742,
          "billingItemAddOns": "",
          "upc": "",
          "sizeId": 4,
          "costGarment": 10.08,
          "costTotal": 10.08,
          "productStyleId": 204,
          "shippingTotal": 6.19,
          "status": "Waiting",
          "proofImage": "126967-front-191230101247244.png",
          "altSizeName": "L",
          "product": {
            "productDescription": "Amazing Sweatshirt!",
            "productType": "POD",
            "defaultColor": 20,
            "productStyleId": 204,
            "productTitle": "Sweatshirt that amazes",
            "art": [
              {
                "colorCount": 999,
                "mockupFile": "https://s3.amazonaws.com/artfiles.sunfrog.com/1538/126967/126967-front-191230101247244.png",
                "productionApplicationTypeId": 1,
                "productionApplicationLocationId": 1,
                "artfile": "https://s3.amazonaws.com/artfiles.sunfrog.com/1538/126967/126967-front-191230101247244.png"
              }
            ],
            "merchantid": 10243,
            "retailPrice": 29.99,
            "artownerid": 126967,
            "designSku": ""
          },
          "qty": 1,
          "custom": "",
          "colorId": 20,
          "costProductionTotal": 0,
          "publicArtId": 43,
          "weight": 22,
          "serviceType": "POD"
        }
      ],
      "email": "",
      "iso3": "",
      "iso2": "US",
      "costTotal": 10.08,
      "orderid": 123,
      "shipWhere": "USPS 2-3 Days",
      "country": "US",
      "mailPiece": "Thick Envelopes",
      "totalItems": 1,
      "address1": "101 Main St.",
      "weight": 44,
      "shipTotal": 6.19,
      "address2": "",
      "postalcode": 10001,
      "priorityProcessing": 0,
      "serviceCode": "",
      "costAddOns": 0,
      "mailClass": "Priority",
      "name": "Joe Customer",
      "batchId": 2,
      "city": "New York",
      "publicOrderId": 19
    }
  ],
  "mode": "test",
  "hasErrors": false
}
									
								

Orders that fail validation are returned in an array, with either a reference to the submitted orderid, or number of the order as incremented in the submitted json structure.

copy

{
  "errors": [
    {
      "orderid": 123,
      "errors": [
        {
          "message": "Invalid Art Id"
        }
      ]
    }
  ],
  "orders": [],
  "mode": "test",
  "hasErrors": true
}
									
								

/orders?publicOrderId=numeric

Gets the status of an order by PublicOrderId.

This endpoint can also be configured as a webhook callback to signal when an order has shipped. To enable this feature, contact our development / sales team.

https://api.sunfrogsolutions.com/orders/?user=myusername&key=myapikey&publicOrderId=numeric

copy

{
  "orders": [
    {
      "receivedDate": "2020-04-02T13:56:31.150",
      "orderComplete": 1,
      "orderId": 2005413265457,
      "publicOrderId": 30,
      "orderItems": [
        {
          "receivedDate": "2020-04-02T13:56:31.150",
          "publicOrderItemId": 30,
          "itemStatus": "Complete",
          "shipMethod": "Priority",
          "trackingNumber": 123456
        }
      ]
    }
  ],
  "mode": "test",
  "hasErrors": false
}
									
								

/orders?OrderId=numeric

Gets the status of an order by OrderId. This will search an order based on a client supplied OrderId.

https://api.sunfrogsolutions.com/orders/?user=myusername&key=myapikey&OrderId=numeric

copy

{
  "orders": [
    {
      "receivedDate": "2020-04-02T13:56:31.150",
      "orderComplete": 1,
      "orderId": 2005413265457,
      "publicOrderId": 30,
      "orderItems": [
        {
          "receivedDate": "2020-04-02T13:56:31.150",
          "publicOrderItemId": 30,
          "itemStatus": "Complete",
          "shipMethod": "Priority",
          "trackingNumber": 123456
        }
      ]
    }
  ],
  "mode": "test",
  "hasErrors": false
}
									
								

/orders?OrderItemId=numeric

Gets the status of an order by OrderItemId. This will search an order based on a client supplied OrderItemId.

https://api.sunfrogsolutions.com/orders/?user=myusername&key=myapikey&OrderItemId=numeric

copy

{
  "orders": [
    {
      "receivedDate": "2020-04-02T13:56:31.150",
      "orderComplete": 1,
      "orderId": 2005413265457,
      "publicOrderId": 30,
      "orderItems": [
        {
          "receivedDate": "2020-04-02T13:56:31.150",
          "publicOrderItemId": 30,
          "itemStatus": "Complete",
          "shipMethod": "Priority",
          "trackingNumber": 123456
        }
      ]
    }
  ],
  "mode": "test",
  "hasErrors": false
}						
								

Workflow

Creating Products

Products can be preconfigured using the product endpoint. Using a preconfigured product is generally recommended, as it can speed up the process for sending orders through the API, and also makes your artwork reusable on subsequent orders. It can also make the production process more efficient, as your artwork may have already been prepared for print by our team.

Product Types

Product type is indicated by the productStyleId when adding new pre-configured products, or when placing orders.

You can obtain the id for the style of product either through the catalog end point, or in the Build and Price section of the SunFrog Solutions Manager.

Alternate Mappings

Product type, color and size strings can be provided in alternate formats if configured through the CSV mappings section of the SunFrog Solutions manager. Alternate mappings take precedence over standard product mappings.

The mapping option is disabled by default. Contact your sales representitive to enable this option.

ProductStyleId in JSON

ProductStyleId in Manager

Positioning Artwork

Artwork is positioned by assigning it a location id, which corresponds to the print location on a garment or product.

Application print locations and associated id's are found on the right.

Application Locations

    productionApplicationLocationId Type
    1 Front
    2 Back
    3 Left Sleeve
    4 Right Sleeve
    5 Front Left Pocket
    6 Back Top Center
    7 Front Left Bottom
    8 Front Right Bottom
    9 Left Side Bottom
    10 Right Side Bottom
    11 Front Lower Left
    12 Front Left Hip
    13 Hood Center
    14 Back Right Hip
    15 Front Right Lower Hip
    16 Back Right Lower Hip
    17 Hanger Loop
    18 Armpit Left
    19 Back Center Inside
    20 Armpit Right
    21 Back Left Lower Hip
    22 Front Lower Right
    23 Top Right
    24 Top Left
    25 Top Center
    26 Side Left
    27 Side Right
    28 Foot Left
    29 Foot Right

Print Types

The method of print is indicated by the application type id. This must be provided when creating new products.

Types may vary depending on the product blank that the artwork is printed on.

Print types and associated id's are found on the right.

Print Types

    ProductionApplicationTypeId Type
    1 GT3
    2 Embroidery
    3 Decal/Sticker
    10 Sublimation [Drinkware]
    14 Laser [Drinkware]
    16 Heat Transfer
    22 Ultra Violet
    27 GTX
    31 DTG [Socks]
    33 Sublimation [Patch]
    34 Sublimation [Flag]
    35 Laser [Headwear]
    36 Screen [Pocket]
    37 Embroidery 3D
    38 Ultra Violet [Sign]
    43 Ultra Violet [Rampant]
    45 Ultra Violet [iSlide Tonal]
    46 DTF
    49 Ultra Violet [iSlide]

Product artwork (artfile) and mockup image (mockupFile), an example rendering of the final product, are provided via URL when submitting to the API.

After a new product is created, the response JSON will include the PublicArtId parameter. This can be used when submitting orders or updating your product.

Submitting Orders

Orders are submitted via the order endpoint. The orders endpoint can accept an array of orders, so you may submit multiple orders per call. The optional OrderId parameter can be used as a reference to the original order in your own system.

Order Items

Items in your order are also sent as an array, allowing you to send multiple items per order. The type of products submitted with your order are indicated by the productStyleId parameter.

Artwork associated with each item can be indicated by providing the publicArtId parameter, or by submitting new artwork in the order parameters itself. Both methods are documented in the product endpoint section

When an order has been submitted successfully, the parameter publicOrderId is returned with the order. This is a reference to the orderId within the SunFrog Solutions system. The publicOrderId can be referenced when checking order status.

Order Errors

If an error is encountered during the order submission process, a JSON structure will be returned indicating the errors which were found within each order. If the order batch was submitted with multiple orders, successful orders will be submitted to production, and orders with errors will be returned with the errors indicated. A reference to each order error will be indicated by either the line number, or the optional OrderId parameter, if provided.

Optional Order Validation

Optional order configurations can be applied at your account level by one of our administrators. These additional parameters will allow for the following:

  • Optional OrderId Duplication Prevention - When enabled, if an orderId is sent in via the JSON request, and a matching orderId exists under your account, the order will be rejected in the return errors JSON structure.

  • Optional ItemId Duplication Prevention - When enabled, if an orderId is sent in via the JSON request, and a matching orderItemId exists under your account, the orderitem will appear in the warnings JSON. The remainder of the order will be submitted. This allows for programattic submission of split orders, ensuring that previously submitted orderItems are not submitted when a partial order is resubmitted.

    If no valid items exist when a duplicate match occurs, the entire order will be rejected and returned in the errors JSON response.

Checking Order Status

Order status will be available once an order has been submitted via the API for production. Individual order status can be obtained by using GET and providing the publicOrderId. If an order has shipped, the tracking number and ship date will be returned with the response JSON.

Code Samples

PHP

Sample PHP implementation. Includes core classes and example get / post calls for each endpoint.