CHAMPRO Development Tools

1.1 Generate Customer Builder Embed Key

You can generate your Customer Builder Embed Key on the Account & Contact Info page ( https://champrosports.com/AccountAndContactInfo ):

1.2 Embed Custom Builder

Our Custom Builder is seamlessly available for embedding into your website's iFrame. Enjoy the flexibility of choosing styles and sizes according to your preferences. The embedding process offers two categories: basic and advanced. Refer to the table below to explore the options available in each category.
OPTION BASIC ADVANCED (Coming Soon)
Authentication Not Required Required
Product Customization Available Available
Order Methods Not Available Available
PlaceOrder Method Not Available Available
<iframe frameborder="0" style="overflow: hidden; height: 100%; width: 800px; position: absolute;" src="CB Embed URL from table below"></iframe>

When embedding Custom Builder please use one of the Embed URLs from the table below:

Category Embed URL
All Categories "https://cb.champrosports.com/V2/Index?lic=Enter Customer Builder Embed Key Here"
BASEBALL "https://cb.champrosports.com/V2/Index/1154?Name=BASEBALL&lic=Enter Customer Builder Embed Key Here"
FASTPITCH "https://cb.champrosports.com/V2/Index/1155?Name=FASTPITCH&lic=Enter Customer Builder Embed Key Here"
MEN'S BASKETBALL "https://cb.champrosports.com/V2/Index/1159?Name=MEN%27S%20BASKETBALL&lic=Enter Customer Builder Embed Key Here"
WOMEN'S BASKETBALL "https://cb.champrosports.com/V2/Index/1160?Name=WOMEN%27S%20BASKETBALL&lic=Enter Customer Builder Embed Key Here"
FOOTBALL "https://cb.champrosports.com/V2/Index/1158?Name=FOOTBALL&lic=Enter Customer Builder Embed Key Here"
HOCKEY "https://cb.champrosports.com/V2/Index/1168?Name=HOCKEY&lic=Enter Customer Builder Embed Key Here"
MEN'S SPORTSWEAR "https://cb.champrosports.com/V2/Index/1217?Name=MEN%27S%20SPORTSWEAR&lic=Enter Customer Builder Embed Key Here"
WOMEN'S SPORTSWEAR "https://cb.champrosports.com/V2/Index/1219?Name=WOMEN%27S%20SPORTSWEAR&lic=Enter Customer Builder Embed Key Here"
MEN'S VOLLEYBALL "https://cb.champrosports.com/V2/Index/1161?Name=MEN%27S%20VOLLEYBALL&lic=Enter Customer Builder Embed Key Here"
WOMEN'S VOLLEYBALL "https://cb.champrosports.com/V2/Index/1162?Name=WOMEN%27S%20VOLLEYBALL&lic=Enter Customer Builder Embed Key Here"
MEN'S SOCCER "https://cb.champrosports.com/V2/Index/1164?Name=MEN%27S%20SOCCER&lic=Enter Customer Builder Embed Key Here"
WOMEN'S SOCCER "https://cb.champrosports.com/V2/Index/1165?Name=WOMEN%27S%20SOCCER&lic=Enter Customer Builder Embed Key Here"
MEN'S TRACK "https://cb.champrosports.com/V2/Index/1248?Name=MEN%27S%20TRACK&lic=Enter Customer Builder Embed Key Here"
WOMEN'S TRACK "https://cb.champrosports.com/V2/Index/1249?Name=WOMEN%27S%20TRACK&lic=Enter Customer Builder Embed Key Here"
MEN'S LACROSSE "https://cb.champrosports.com/V2/Index/1251?Name=MEN%27S%20LACROSSE&lic=Enter Customer Builder Embed Key Here"
WOMEN'S LACROSSE "https://cb.champrosports.com/V2/Index/1252?Name=WOMEN%27S%20LACROSSE&lic=Enter Customer Builder Embed Key Here"
SPLASH SHIRTS "https://cb.champrosports.com/V2/Index/1157?Name=SPLASH%20SHIRTS&lic=Enter Customer Builder Embed Key Here"
CAPS "https://cb.champrosports.com/V2/Index/1156?Name=CAPS&lic=Enter Customer Builder Embed Key Here"
7V7 "https://cb.champrosports.com/V2/Index/1171?Name=7V7&lic=Enter Customer Builder Embed Key Here"
WRESTLING "https://cb.champrosports.com/V2/Index/1172?Name=WRESTLING&lic=Enter Customer Builder Embed Key Here"
SLOWPITCH "https://cb.champrosports.com/V2/Index/1209?Name=SLOWPITCH&lic=Enter Customer Builder Embed Key Here"
REALTREE® "https://cb.champrosports.com/V2/Index/1542?Name=REALTREE®&lic=Enter Customer Builder Embed Key Here"
JUICE 5-DAY PROGRAM "https://cb.champrosports.com/V2/Index/1566?Name=JUICE%205-DAY%20PROGRAM&lic=Enter Customer Builder Embed Key Here"
LEGACY COLLECTION "https://cb.champrosports.com/V2/Index/1567?Name=LEGACY%20COLLECTION&lic=Enter Customer Builder Embed Key Here"
SLAM DUNK 5-DAY PROGRAM "https://cb.champrosports.com/V2/Index/1590?Name=SLAM%20DUNK%205-DAY%20PROGRAM&lic=Enter Customer Builder Embed Key Here"

1.2.1 Basic (no authentication)

In the Basic embedding option, customers have the flexibility to customize products to their liking; however, it does not grant access to any of the Order Methods. No customer key is required for Basic embedding. Simply copy the code below and paste it into your website to seamlessly integrate our Customer Builder. Adjust the 'width' and 'height' settings to align with your site's design.



Code below must be placed in the head section

<script type="text/javascript">
window.onload = function () {
var iFrame = document.getElementById("RSIFrame");
if (iFrame) {
var iFrame = document.getElementById("RSIFrame");
iFrame.setAttribute("src", <CustomBuilderAPIAddress for BASIC from table above>);
}
}
</script>

Code below must be placed in the body section

<div style="align-content: start; margin-left: 25px; " class="panel">
<iframe id='RSIFrame' frameborder="0" style="overflow: hidden; height: 100%; width: 800px; position: absolute;" />
<script>
var myiFraim = document.getElementById("RSIFrame");
var iFrame_URL = <CustomBuilderAPIAddress for BASIC from table above>;
myiFraim.src = iFrame_URL;
</script>
</div>

1.2.2 Advanced (authentication required) (Coming Soon)

In the Advanced embedding option, customers not only have the ability to customize products but can also utilize all Order Methods with their customized products. Advanced embedding of the Customer Builder (CB) requires a customer key number.
Ensure that the customer key number is included as the value for the variable 'CustomBuilderCustomerKey' ('Customer Builder Embed Key' from website), and the Customer Builder address should be present as the value for the variable 'CustomBuilderAPICustomerKey'('API Customer Key' from website).



Code below must be placed in the head/script section



window.onload function starts Custom Builder in iframe

window.onload = function () {
var iFrame = document.getElementById("RSIFrame");
if (iFrame) {
var iFrame = document.getElementById("RSIFrame");
var CustomBuilderCustomerKey = document.getElementById("CustomBuilderCustomerKey");
if (CustomBuilderCustomerKey) {
iFrame.setAttribute("src", <CustomBuilderAPIAddress for ADVANCED from table above>);
}
}
};

Following function is event listeners in parent page for events in child iFrame.

window.addEventListener("message", (event) => {
if (event.data && event.data.sender == "CustomBuilder") {
cb_callback(event.data.action, event.data.message);
}
});

Following function handles information from listener.

function cb_callback(cb_action, cb_id) {
//cb_action - code of action sent from child iFrame. For saving of design it returns as "ProcessDesign"
//cb_id - "Design Session ID" - session id for stored design - you can use this Session Id to get some addition information or placing the order
//not mandatory JS code
}


Code below must be placed in the body section

<input type="hidden" id="CustomBuilderCustomerKey" value="<PLACE YOUR CUSTOMER KEY HERE>">
<div style="align-content: start; margin-left: 25px; " class="panel">
<iframe id="RSIFrame" frameborder="0" style="overflow: hidden; height: 100%; width: 800px; position: absolute;" />
<script>
var myiFraim = document.getElementById("RSIFrame");
var iFrame_URL = <CustomBuilderAPIAddress for ADVANCED from table above>
myiFraim.src = iFrame_URL;
</script>
</div>

1.2.2.1 Order methods

Please note that order methods are exclusively accessible to advanced customers.

1.2.2.2 Get Proof file

To utilize the ProofFile method, it is imperative to employ the GetFile function. The download address is structured in the following manner:

CustomBuilderAPIAddress.value + "/api/Order/GetFile?CustomerKey=" + CustomBuilderCustomerKey.value + "&SessionId=" + CustomBuilderSessionId.value + "&FileType=" + cb_file_type;

To retrieve the Proof file, ensure that the cb_file_type is set to “ProofPdf”.
Here is an example:
Code below must be placed in script section
function GetFileJQ(cb_file_type, cb_file_ext) {
var CustomBuilderSessionId = document.getElementById("CustomBuilderSessionId");
var CustomBuilderCustomerKey = document.getElementById("CustomBuilderCustomerKey");
var CustomBuilderAPIAddress = document.getElementById("CustomBuilderAPIAddress");
if (CustomBuilderSessionId && CustomBuilderCustomerKey && CustomBuilderAPIAddress) {
var _downloadUrl = CustomBuilderAPIAddress.value + "/api/Order/GetFile?CustomerKey=" + CustomBuilderCustomerKey.value + "&SessionId=" +
CustomBuilderSessionId.value + "&FileType=" + cb_file_type;
var _downloadLink = document.createElement("a");
_downloadLink.download = CustomBuilderSessionId.value + '.' + cb_file_ext;
_downloadLink.href = _downloadUrl;
document.body.appendChild(_downloadLink);
_downloadLink.click();
document.body.removeChild(_downloadLink);
}
}

The code below serves as an example of what should be placed in the body section.

To download the Proof file, the ID of the saved design must be utilized as CustomBuilderSessionId.

<input type="hidden" id="CustomBuilderSessionId" value="<Custom Builder Session Id>">
<input type="hidden" id="CustomBuilderCustomerKey" value="<PLACE YOUR CUSTOMER KEY HERE>">
<input type="hidden" id="CustomBuilderAPIAddress" value="http://cb.champrosports.com/">
<button type="button" onclick="GetFileJQ('ProofPdf', 'pdf')" id="btnProofPdf">Get proof (PDF) file</button>

1.2.2.3 Get Front Image File

To utilize the FrontFile method, it is imperative to employ the GetFile function. The download address is structured in the following manner:

CustomBuilderAPIAddress.value + "/api/Order/GetFile?CustomerKey=" + CustomBuilderCustomerKey.value + "&SessionId=" + CustomBuilderSessionId.value + "&FileType=" + cb_file_type;

To retrieve the Front file, ensure that the cb_file_type is set to “FrontImage”
Here is an example:
The following code must be placed in the script section:

function GetFileJQ(cb_file_type, cb_file_ext) {
var CustomBuilderSessionId = document.getElementById("CustomBuilderSessionId");
var CustomBuilderCustomerKey = document.getElementById("CustomBuilderCustomerKey");
var CustomBuilderAPIAddress = document.getElementById("CustomBuilderAPIAddress");
if (CustomBuilderSessionId && CustomBuilderCustomerKey && CustomBuilderAPIAddress) {
var _downloadUrl = CustomBuilderAPIAddress.value + "/api/Order/GetFile?CustomerKey=" + CustomBuilderCustomerKey.value + "&SessionId=" +
CustomBuilderSessionId.value + "&FileType=" + cb_file_type;
var _downloadLink = document.createElement("a");
_downloadLink.download = CustomBuilderSessionId.value + '.' + cb_file_ext;
_downloadLink.href = _downloadUrl;
document.body.appendChild(_downloadLink);
_downloadLink.click();
document.body.removeChild(_downloadLink);
}
}

The code below serves as an example of what should be placed in the body section.

To download the Left file, the ID of the saved design must be utilized as CustomBuilderSessionId

<input type="hidden" id="CustomBuilderSessionId" value="<Custom Builder Session Id>">
<input type="hidden" id="CustomBuilderCustomerKey" value="<PLACE YOUR CUSTOMER KEY HERE>">
<input type="hidden" id="CustomBuilderAPIAddress" value="http://cb.champrosports.com/">
<button type="button" onclick="GetFileJQ('FrontImage', 'pdf')" id="btnFrontImage">Get Front Image</button>

1.2.2.4 Get Back Image File

To utilize the ProofFile method, it is imperative to employ the GetFile function. The download address is structured in the following manner:
CustomBuilderAPIAddress.value + "/api/Order/GetFile?CustomerKey=" + CustomBuilderCustomerKey.value + "&SessionId=" + CustomBuilderSessionId.value + "&FileType=" + cb_file_type;
To retrieve the Proof file, ensure that the cb_file_type is set to “BackImage”
Here is an example:
The following code must be placed in the script section
function GetFileJQ(cb_file_type, cb_file_ext) {
var CustomBuilderSessionId = document.getElementById("CustomBuilderSessionId");
var CustomBuilderCustomerKey = document.getElementById("CustomBuilderCustomerKey");
var CustomBuilderAPIAddress = document.getElementById("CustomBuilderAPIAddress");
if (CustomBuilderSessionId && CustomBuilderCustomerKey && CustomBuilderAPIAddress) {
var _downloadUrl = CustomBuilderAPIAddress.value + "/api/Order/GetFile?CustomerKey=" + CustomBuilderCustomerKey.value + "&SessionId=" +
CustomBuilderSessionId.value + "&FileType=" + cb_file_type;
var _downloadLink = document.createElement("a");
_downloadLink.download = CustomBuilderSessionId.value + '.' + cb_file_ext;
_downloadLink.href = _downloadUrl;
document.body.appendChild(_downloadLink);
_downloadLink.click();
document.body.removeChild(_downloadLink);
}
}

The code below serves as an example of what should be placed in the body section

To download the Back file, the ID of the saved design must be utilized as CustomBuilderSessionId

<input type="hidden" id="CustomBuilderSessionId" value="<Custom Builder Session Id>">
<input type="hidden" id="CustomBuilderCustomerKey" value="<PLACE YOUR CUSTOMER KEY HERE>">
<input type="hidden" id="CustomBuilderAPIAddress" value="http://cb.champrosports.com/">
<button type="button" onclick="GetFileJQ('BackImage', 'png')" id="btnBackImage">Get Back Image</button>

1.2.2.5 Get Left Image File

To utilize the LeftImage method, it is imperative to employ the GetFile function. The download address is structured in the following manner:
CustomBuilderAPIAddress.value + "/api/Order/GetFile?CustomerKey=" + CustomBuilderCustomerKey.value + "&SessionId=" + CustomBuilderSessionId.value + "&FileType=" + cb_file_type;

To retrieve the Left image file, ensure that the cb_file_type is set to 'LeftImage'.

Here is an example:

The following code must be placed in the "script section:

function GetFileJQ(cb_file_type, cb_file_ext) {
var CustomBuilderSessionId = document.getElementById("CustomBuilderSessionId");
var CustomBuilderCustomerKey = document.getElementById("CustomBuilderCustomerKey");
var CustomBuilderAPIAddress = document.getElementById("CustomBuilderAPIAddress");
if (CustomBuilderSessionId && CustomBuilderCustomerKey && CustomBuilderAPIAddress) {
var _downloadUrl = CustomBuilderAPIAddress.value + "/api/Order/GetFile?CustomerKey=" + CustomBuilderCustomerKey.value + "&SessionId=" +
CustomBuilderSessionId.value + "&FileType=" + cb_file_type;
var _downloadLink = document.createElement("a");
_downloadLink.download = CustomBuilderSessionId.value + '.' + cb_file_ext;
_downloadLink.href = _downloadUrl;
document.body.appendChild(_downloadLink);
_downloadLink.click();
document.body.removeChild(_downloadLink);
}
}

The code below serves as an example of what should be placed in the body section

To download the Left image file, the ID of the saved design must be utilized as CustomBuilderSessionId

<input type="hidden" id="CustomBuilderSessionId" value="<Custom Builder Session Id>">
<input type="hidden" id="CustomBuilderCustomerKey" value="<PLACE YOUR CUSTOMER KEY HERE>">
<input type="hidden" id="CustomBuilderAPIAddress" value="http://cb.champrosports.com/">
<button type="button" onclick="GetFileJQ('LeftImage', 'png')" id="btnLeftImage">Get Left Image</button>

1.2.2.6 Get Right Image File

To utilize the RightFile method, it is imperative to employ the GetFile function. The download address is structured in the following manner:
CustomBuilderAPIAddress.value + "/api/Order/GetFile?CustomerKey=" + CustomBuilderCustomerKey.value + "&SessionId=" + CustomBuilderSessionId.value + "&FileType=" + cb_file_type;
To retrieve the Right image file, ensure that the cb_file_type is set to “RightImage”
Here is an example:
The following code must be placed in the script section
function GetFileJQ(cb_file_type, cb_file_ext) {
var CustomBuilderSessionId = document.getElementById("CustomBuilderSessionId");
var CustomBuilderCustomerKey = document.getElementById("CustomBuilderCustomerKey");
var CustomBuilderAPIAddress = document.getElementById("CustomBuilderAPIAddress");
if (CustomBuilderSessionId && CustomBuilderCustomerKey && CustomBuilderAPIAddress) {
var _downloadUrl = CustomBuilderAPIAddress.value + "/api/Order/GetFile?CustomerKey=" + CustomBuilderCustomerKey.value + "&SessionId=" +
CustomBuilderSessionId.value + "&FileType=" + cb_file_type;
var _downloadLink = document.createElement("a");
_downloadLink.download = CustomBuilderSessionId.value + '.' + cb_file_ext;
_downloadLink.href = _downloadUrl;
document.body.appendChild(_downloadLink);
_downloadLink.click();
document.body.removeChild(_downloadLink);
}
}

The code below serves as an example of what should be placed in the body section

To download the Right Image file, the ID of the saved design must be utilized as CustomBuilderSessionId

<input type="hidden" id="CustomBuilderSessionId" value="<Custom Builder Session Id>">
<input type="hidden" id="CustomBuilderCustomerKey" value="<PLACE YOUR CUSTOMER KEY HERE>">
<input type="hidden" id="CustomBuilderAPIAddress" value="http://cb.champrosports.com/">
<button type="button" onclick="GetFileJQ('RightImage', 'png')" id="btnRightImage">Get Right Image</button>

1.2.2.7 Get Order data

To get Order Data method GetOrderInfo must be used. Download address looks like
CustomBuilderAPIAddress.value + "/api/Order/GetOrderInfo?CustomerKey=" + CustomBuilderCustomerKey.value + "&SessionId=" + CustomBuilderSessionId.value;

Example:

Code below must be placed in script section

function GetOrder() {
var CustomBuilderSessionId = document.getElementById("CustomBuilderSessionId");
var CustomBuilderCustomerKey = document.getElementById("CustomBuilderCustomerKey");
var CustomBuilderAPIAddress = document.getElementById("CustomBuilderAPIAddress");
if (CustomBuilderSessionId && CustomBuilderCustomerKey && CustomBuilderAPIAddress) {
var _downloadUrl = CustomBuilderAPIAddress.value + "/api/Order/GetOrderInfo?CustomerKey=" + CustomBuilderCustomerKey.value + "&SessionId=" + CustomBuilderSessionId.value;
var xhr = new XMLHttpRequest();
xhr.open('GET', _downloadUrl, true);
xhr.responseType = 'json';
xhr.onload = function () {

var status = xhr.status;
<Insert your code to process the response professionally, utilizing the status and xhr.response. A status of 200 indicates successful operation.>
};
xhr.send();
}
}

Code below is example what should be placed in body section

To download Order Data, ID of saved design must be used as CustomBuilderSessionId

<input type="hidden" id="CustomBuilderSessionId" value="<Custom Builder Session Id>">
<input type="hidden" id="CustomBuilderCustomerKey" value="<PLACE YOUR CUSTOMER KEY HERE>">
<input type="hidden" id="CustomBuilderAPIAddress" value="http://cb.champrosports.com/">
<button type="button" onclick="GetOrder()" id="btnGetOrder">Get Order Data</button>


Execution of function GetOrder() returns Jason data or error message

Example of Data is below:

[
{
KbCartItemId: 10315,
CreatedDataTime: "2021-09-08 10:23:19Z",
RosterLineId: "d57cb2a5-710d-4558-a58f-b29e58ba1a64",
ProductName: "HC2",
DesignName: "HC2FG3",
DesignColor: "",
SelectedLeadTime: {
LeadTimeId: "EX",
LeadTimeName: "EMBROIDERY Express",
LeadTimeDays: 10
}, SelectedFabric: "",
AvailableLeadTimes: [
{

LeadTimeId: "EX",
LeadTimeName: "EMBROIDERY Express",
LeadTimeDays: 10
}
],
Quantity: 12,
Teams: [
{
TeamLineId: "290af7b0-a302-414e-8c67-4b41fd27125b",
TeamName: "",
Quantity: 3,
Players: [
{
PlayerName: "Alex",
PlayerNumber: "77",
PlayerSize: "S/M",
Quantity: 1,
SKU: null
},
{
PlayerName: "John",
PlayerNumber: "78",
PlayerSize: "S/M",
Quantity: 1,
SKU: null
},
{
PlayerName: "Jack",
PlayerNumber: "79",
PlayerSize: "S/M",
Quantity: 1,
SKU: null
}
]
}
]
}
]

1.2.2.8 Place Order

The Place Order API enables order submission to CHAMPRO's system, which can then be managed through the Champro website.
Place Order is retrieved using a POST request.

To place order you must set up your API Allowed IP Addresses on the Account & Contact Info page ( https://champrosports.com/AccountAndContactInfo ):


Place Custom Order Request Object Definition:
SessionId1 String Saved Design Session ID.
PONumber1 String Selected "PO Number" choice for the initial order.
LeadTimeId1 String Selected "Lead Time ID" choice for the initial order.
APICustomerKey1 String Unique Customer ID is for customer authentication.
ShipTo1 Object
FirstName1 String "FirstName" represents the recipient First Name.
LastName1 String "LastName" represents the recipient Last Name.
Company String Recipient's company name for shipping.
Phone String Recipient's phone for shipping.
Address11 String Recipient's street number and street name for shipping.
Address2 String Recipient's second address line for shipping.
Suite String Recipient's suite for shipping.
City1 String Recipient's city for shipping.
State1 String Recipient's state code for shipping.
ZIP1 String Recipient's ZIP code for shipping.
Country1 String Recipient's country code or country name for shipping.
As of today, the service will accept "US", "USA" or "United States" in either upper or lower case.
IsResidential String The recipient's residence type. A String value of "true" represents "residential" and "false" indicates "commertial".
IsSandBox Boolean A Boolean value of "true" represents "test order" and "false" indicates "production orders". Default value is "false".
  • Fields that are devoid of special markings are required in Custom Product order.
  • 1 - The field is optional in Custom Product order.

The code below serves as an example of what should be placed in the body section

To download the Left image file, the ID of the saved design must be utilized as CustomBuilderSessionId

<input type="hidden" id="CustomBuilderSessionId" value="<PLACE YOUR SAVED DESIGN SESSION ID>">
<input type="hidden" id="CustomBuilderAPICustomerKey" value="<PLACE YOUR CUSTOMER KEY HERE>">
<input type="hidden" id="CustomBuilderAPIAddress" value="http://cb.champrosports.com/">
<input type="hidden" id="CustomBuilderShipToFirstName" value="<PLACE RECIPIENT FIRST NAME>">
<input type="hidden" id="CustomBuilderShipToLastName" value="<PLACE RECIPIENT LAST NAME>">


<input type="hidden" id="CustomBuilderShipToCompany" value="<PLACE RECIPIENT COMPANY NAME>">
<input type="hidden" id="CustomBuilderShipToPhone" value="<PLACE RECIPIENT PHONE NUMBER>">
<input type="hidden" id="CustomBuilderShipToAddress1" value="<PLACE RECIPIENT ADDRESS FIRST LINE>">
<input type="hidden" id="CustomBuilderShipToAddress2" value="<PLACE RECIPIENT ADDRESS SECOND LINE>">
<input type="hidden" id="CustomBuilderShipToSuite" value="<PLACE RECIPIENT SUITE>">
<input type="hidden" id="CustomBuilderShipToCity" value="<PLACE RECIPIENT CITY>">
<input type="hidden" id="CustomBuilderShipToState" value="<PLACE RECIPIENT STATE>">
<input type="hidden" id="CustomBuilderShipToZip" value="<PLACE RECIPIENT ZIP CODE>">
<input type="hidden" id="CustomBuilderShipToCountry" value="<PLACE RECIPIENT COUNTRY>">
<input id="CustomBuilderIsResidential" name="CustomBuilderIsResidential" value="<PLACE TRUE IF RECIPIENT ADDRESS IS RESIDENTIAL AND FALSE IF NOT>">


<input type="hidden" id="CustomBuilderLeadTime" value="<PLACE ORDER LEAD TIME ID>">
<input type="hidden" id="CustomBuilderPONumber" value="<PLACE ORDER PO NUMBER>">
<input type="hidden" id="CustomBuilderSandBox" value="<PLACE TRUE FOR TEST ORDERS OR FALSE FOR PRODUCTION ORDERS>
<button type="button" onclick="PlaceOrder()" id="btnPlaceOrder" >Place the order</button>
The Place Order function can be executed by using PlaceOrder().
Note: CustomBuilder (CB) does not verify ShipTo Address. It is essential that the ShipTo Address adheres to UPS Address regulations. To validate the Address, kindly visit the UPS Validate an Address page.
The PlaceOrder function requires a ShipTo object, which should be created using the GetShipTo() function, along with the inclusion of PONumber and LeadTimeId if available.
The PlaceOrder function yields an 'OK' result along with a message containing the Order Number in the event that the order is successfully placed.
The PlaceOrder function returns an 'ERROR' result accompanied by an error message containing the Error Code and Description in the event of a failed order.
Below is the List of Error Codes:
Error Message Error Code
Cannot download Proof File.01
Proof file is in incorrect format. Allowed formats: .PDF, .JPG, .JPEG, PNG.02
Request format or data validation error.03
Cannot place order with customer default Net Terms.04
Customer validation error. Please contact CHAMPRO API Support.05
Failed Address Verification.06
Cannot process order request for both custom and stock products. Please split the request.07
SKU does not Exist.08
Cannot place order with customer default Net Terms.09
Customer validation error. Please contact CHAMPRO API Support.10
Warehouse is not specified. Please specify warehouse or use Auto Warehouse option.11
Failed to place the order. Please contact CHAMPRO API Support.12
Not enough Inventory.13
Failed to place the order. Please contact CHAMPRO API Support14
IP Address is not allowed. Please add your IP to the list of the allowed IP addresses on Account and Contact Info website page.15
Incorrect Customer API Key.16
Incorrect PO Number.17
Failed to save the order data.18
Order has Wrong Format.19
Can not find API Customer Key.20
Error Lead Time validation: this value is required.21
Error Lead Time validation22
Do not allow to place order with your Term of payment.23
Recipient Name or Shipping Address is incorrect.24
<Product Master> has to be ordered in quantity increments of <Minimum Order Quantity Custom value>.25
The following code must be inserted in the script section.
function GetShipTo() {
//for Address validation we use UPS commercial validator (https://onlinetools.ups.com)
var retValue = new Object();
retValue.FirstName = "<YOUR DATA>";
retValue.LastName = "<YOUR DATA>";
retValue.Company = "<YOUR DATA>";
retValue.Phone = "<YOUR DATA>";
retValue.Address1 = "<YOUR DATA>";
retValue.Address2 = "<YOUR DATA>";
retValue.Suite = "<YOUR DATA>";
retValue.City = "<YOUR DATA>";
retValue.State = "<YOUR DATA>";
retValue.Zip = "<YOUR DATA>";
retValue.Country "<YOUR DATA>";
retValue.IsResidential "<YOUR DATA>";
return retValue;
}

function PlaceOrder() {
var CustomBuilderSessionId = document.getElementById("CustomBuilderSessionId");
var CustomBuilderCustomerKey = document.getElementById("CustomBuilderCustomerKey");
var CustomBuilderAPICustomerKey = document.getElementById("CustomBuilderAPICustomerKey");
var CustomBuilderAPIURL = document.getElementById("CustomBuilderAPIURL");
var CustomBuilderSandBox = document.getElementById("CustomBuilderSandBox");
if (CustomBuilderSessionId && CustomBuilderCustomerKey && CustomBuilderAPIURL) {
var OrderData = new Object();
OrderData.CustomerKey = CustomBuilderAPICustomerKey.value;
OrderData.APICustomerKey = CustomBuilderAPICustomerKey.value;
OrderData.SessionId = CustomBuilderSessionId.value;
OrderData.PONumber = "";
OrderData.LeadTimeId = "";
OrderData.ShipTo = GetShipTo();
OrderData.IsSandBox = false;
if (CustomBuilderSandBox && CustomBuilderSandBox.value === "true") {
OrderData.IsSandBox = true;
}
var CustomBuilderPONumber = document.getElementById("CustomBuilderPONumber");
if (CustomBuilderPONumber) {
OrderData.PONumber = CustomBuilderPONumber.value;
}
var CustomBuilderLeadTime = document.getElementById("CustomBuilderLeadTime");
if (CustomBuilderLeadTime) {
OrderData.LeadTimeId = CustomBuilderLeadTime.value;
}

$.post( CustomBuilderAPIURL.value + '/api/Order/PlaceOrder', OrderData)
.done(function( data ) {
if (data.Result == "OK") {
var lblValidation = document.getElementById("lblValidation");
if (lblValidation) {
lblValidation.innerText = "";
}
alert("Order was placed\r\nOrder #" + data.Order + "\r\nWill be shipped to: " + data.ValidatedShippingAddress.Description);
}
else {
var lblValidation = document.getElementById("lblValidation");
if (lblValidation) {
lblValidation.innerText = data.Message;
alert("Order has not been placed");
}
else {
alert("Order has not been placed.\r\n" + data.Message);
}
}
})
.fail(function () {
var lblValidation = document.getElementById("lblValidation");
if (lblValidation) {
lblValidation.innerText = "Try to do this some later or contact with our Support Team";
alert("Order has not been placed");
}
else {
alert('Order has not been placed.\r\nTry to do this some later or contact with our Support Team.\r\nThank you.');
}
});
}
}
The requested action yields a JSON response with the following structure. Place Order Response Object Definition:
Result String Potential response variations include either an affirmative status denoted by "OK" or a negative status indicated by "Error".
Order String The system will furnish the web order number upon successful placement of an order. In the event of an error during the order placement process, the field will remain empty.
Message String In the event of an unsuccessful order placement, the system will generate and return an error message to provide details regarding the encountered issues.
MessageCode String In the event of an unsuccessful order placement, the system will generate and return an error code.
SessionID String After order placement, the API returns CHAMPRO identification key of current request.

2. CHAMPRO API

The CHAMPRO API allows users to check product availability, place orders for stock and custom products, and receive order status updates.
It functions via RESTful requests and JSON responses.
Each customer request must include an API Customer Key for validation and authentication.
This unique access credential is provided individually by CHAMPRO, ensuring secure and distinct access privileges for each customer.

2.1 Generate API Customer Key

You can generate your API Customer Key on the Account & Contact Info page ( https://champrosports.com/AccountAndContactInfo ):


2.2 Set Allowed IP Addresses

You must set up your API Allowed IP Addresses on the Account & Contact Info page ( https://champrosports.com/AccountAndContactInfo ):


2.3 Product Information

The Product Info request provides real-time updates about ongoing product master info, including all available product SKUs with related configuration, fabric, color and size and all available product Lead Times.
Product Info is retrieved using a GET request.
Resource URL:
https://api.champrosports.com/api/Order/ProductInfo
The Order Status request requires two mandatory parameters: APICustomerKey and ProductMaster.
Example of Product Info Request:
https://api.champrosports.com/api/Order/ProductInfo?ProductMaster=JSBJ8&APICustomerKey=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Product Info Response Object Definition:
ProductMaster String The API presents the chosen "ProductMaster" option of the initial order.
MOQ Integer The API provides the Minimum Order Quantity value for Stock Orders of the presented Product Master.
MOQCustom Integer The API provides the Minimum Order Quantity value for Custom Orders of the presented Product Master.
ProductSKUs List of Objects
SKU String Available Product SKU.
Configuration String Available Product SKU configuration.
Fabric String Available Product SKU Fabric.
Color String Available Product SKU color.
Size String Available Product SKU Size.
AvailableLeadTime List of Objects
LeadTimeName String Available Lead Time Name.
LeadTime String Available Lead Time in days.
LeadTimeCharge String Cost of LeadTime.
Error String Upon an error, the response will contain an error message.
Example of Product Info Response:
{
"ProductMaster": "JSBJ8",
"MOQ": 0,
"MOQCustom": 12,
"ProductSKUs": [
{
"SKU": "JSBJ8GACL",
"Configuration": "GIRLS",
"Fabric": "ACTIVE CLOTH",
"Color": "", "Size": "L"
},
.............
{
"SKU": "JSBJ8WWP14XL",
"Configuration": "WOMENS",
"Fabric": "TEK-KNIT WPK395",
"Color": "",
"Size": "XL"
}
],
"AvailableLeadTimes": [
{
"LeadTimeName": "JUICE Standard",
"LeadTime": "15",
"LeadTimeCharge": "0.00"
},
{
"LeadTimeName": "JUICE Express",
"LeadTime": "10",
"LeadTimeCharge": "8.00"
},
{
"LeadTimeName": "JUICE Express Plus +",
"LeadTime": "5",
"LeadTimeCharge": "16.00"
}
],
"Error": null
}

2.4 Product Inventory

The Inventory API request returns inventory by warehouse.
Inventory information is retrieved using a POST request.
Resource URL:
https://api.champrosports.com/api/Order/Inventory
Inventory Request Object Definition:
APICustomerKey String Unique Customer ID is for customer authentication.
Orders List Of Objects
OrderItems List Of Objects
SKU String The SKU number to access inventory data.
Example of Inventory Request:
{
"APICustomerKey":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"Orders":[
{
"OrderItems":[
{
"SKU":"BS25YGRBM"
},
..........
{
"SKU":"A068RYL"
}
]
},
..........
{

"OrderItems":[

{

"SKU":"BP62YGHBPS"

},
..........
{

"SKU":"BBS44ABS"
}
]
}
]
}
Inventory Response Object Definition:
SessionID String The initiating customer's Unique Customer ID.
Inventory List Of Objects
ItemID String Name of Basic Product ID.
SKU String Name of Product SKU.
MORE_EXPECTED_ON String Expected date if applicable.
Warehouses List Of Objects
WarehouseLocation String One option from the following list: IL, CA, DR.
Quantity Integer Quantity of available products in inventory.
ResponseMessage String Upon an error, the response will contain an error message.
ErrorMessages List Of Strings In the event of an error for an individual SKU, the response will include an error message.
Upon a valid request, the CHAMPRO API provides Inventory by Warehouse, including the MORE_EXPECTED_ON date if applicable.
Conversely, for an erroneous request, the CHAMPRO API generates an empty Inventory and a response message "REQUEST DATA IS INCORRECT."
Example of Inventory Response:
{
"SessionID": "xxxxxxxxxxxxxxxxxxxxxx",
"Inventory":[
{
"ItemID": "BBS44",
"SKU": "BBS44ABS",
"MORE_EXPECTED_ON": "7/13/2025",
"Warehouses":[
{
"WarehouseLocation": "IL",
"Quantity": 532
},
{
"WarehouseLocation": "CA",
"Quantity": 24
},
{
"WarehouseLocation": "DR",
"Quantity": 0
}
]
}
],
"ResponseMessage": "XXXXXXXXXXXXX"
"ErrorMessages":[
"E3.1: <SKU Name> - SKU does not Exist."
]
}

2.5 Place Order

The Place Order API enables order submission to CHAMPRO's system, which can then be managed through the Champro website.
Place Order is retrieved using a POST request.
The CHAMPRO API offers support for two distinct types of orders:
  1. Custom Product Order
  2. Stock Product Order
Requests can include multiple orders of Custom and Stock types, but individual orders must exclusively contain products of one category - either Custom or Stock.
Resource URL:
https://api.champrosports.com/api/Order/PlaceOrder
Resource URL for testing:
https://api.champrosports.com/api/OrderSandBox
All orders executed within the Sandbox and older then 30 days will be reset and removed by the conclusion of the day.

2.5.1 Custom Product Order

Place Custom Order Request Object Definition:
APICustomerKey String Unique Customer ID is for customer authentication.
Orders List Of Objects
PO String "PO" represents the client's side order number.
OrderType String The Order Type for inclusion in the order, chosen from: CUSTOM, STOCK.
ShipToLastName String Recipient's last name for shipping.
ShipToFirstName String Recipient's first name for shipping.
Address String Recipient's street number and street name for shipping.
Address2 String Recipient's second address line for shipping.
City String Recipient's city for shipping.
StateCode String Recipient's state code for shipping.
ZIPCode String Recipient's ZIP code for shipping.
CountryCode String Recipient's country code for shipping.
Phone String Recipient's phone number for shipping.
IsResidential Boolean The recipient's residence type. A Boolean value of "1" represents "residential" and "0" indicates "commertial".
LeadTime String The designated lead time name for use in the order.
ProofFileURL String Link to customer's proof file for the order, which must be in PDF, JPG, JPEG, or PNG format.
TeamColor1 String The color to include in the order.
OrderItems List of Object
SKU String Name of Product SKU.
TeamName1 String The team name to include in the order.
PlayerName1 String The player's name to be included in the order.
PlayerNumber1 String The player's number to be included in the order.
Quantity2 Integer The quantity of selected SKUs for the order.
  • Fields that are devoid of special markings are required in Custom Product order.
  • 1 - The field is optional in Custom Product order.
  • 2 - If the Minimum Order Quantity Custom (MOQCustom) is greater than 0, the product must be ordered in quantity increments of the MOQCustom.
Example of Custom Product Place Order:
{
"APICustomerKey":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"Orders":[
{
"PO":"TEST ORDER, DO NOT PROCESS",
"OrderType":"CUSTOM",
"ShipToLastName":"LASTNAME",
"ShipToFirstName":"FIRSTNAME",
"Address":"123 STREET AVE",
"Address2":"APT 7",
"City":"CITY",
"StateCode":"ST",
"ZIPCode":"12345",
"CountryCode":"USA",
"Phone":"1234567890",
"IsResidential":1,
"LeadTime":"JUICE Standard",
"ProofFileURL":"https://sample-videos.com/img/Sample-jpg-image-50kb.jpg",
"TeamColor":"RED",
"OrderItems":[
{
"SKU":"JBST8YACS",
"TeamName":"VALLEY",
"PlayerName":"SCUBY",
"PlayerNumber":"34",
"Quantity":2
},
{
"SKU": "JBST8YACL",
"TeamName": "VALLEY",
"PlayerName": "EDNA",
"PlayerNumber": "30",
"Quantity": 1
},
{
"SKU": "JBST8YACL",
"TeamName": "VALLEY 2",
"PlayerName": "DOO",
"PlayerNumber": "35",
"Quantity": 3
}
]
}
}
Place Custom Order Response Object Definition:
SessionID String After order placement, the API returns CHAMPRO identification key of current request.
APICustomerKey String After order placement, the API returns the initiating customer's APICustomerKey.
RequestType String For a processing-intended order, the field reads "SUBMIT." If the order is not intended to proceed (as per Sandbox details), the field reads "PRESUBMIT."
Autowarehouse String The API displays the selected "Autowarehouse" choice for the initial order.
RequesErrors List of Objects
Response String The error message related to the request level.
Orders List Of initial orders
PO String The API displays the selected "PO" choice for the initial order.
OrderType String The API displays the selected "OrderType" choice for the initial order.
ShipToLastName String The API displays the selected "ShipToLastName" choice for the initial order.
ShipToFirstName String The API displays the selected "ShipToFirstName" choice for the initial order.
Address String The API displays the selected "Address" choice for the initial order.
Address2 String The API displays the selected "Address2" choice for the initial order.
City String The API displays the selected "City" choice for the initial order.
StateCode String The API displays the selected "StateCode" choice for the initial order.
ZIPCode String The API displays the selected "ZIPCode" choice for the initial order.
CountryCode String The API displays the selected "CountryCode" choice for the initial order..
Phone String The API displays the selected "Phone" choice for the initial order.
IsResidential Boolean The API displays the selected "IsResidential" choice for the initial order.
LeadTime String The API displays the selected "LeadTime" choice for the initial order.
ProofFileURL String The API displays the selected "ProofFile" choice for the initial order.
TeamColor String The API displays the selected "TeamColor" choice for the initial order.
CostTotal Decimal The API displays the total cost of processed products.
OrderItems List of Object
SKU String The API displays the selected "SKU" choice for the initial order.
TeamName String The API displays the selected "TeamName" choice for the initial order.
PlayerName String The API displays the selected "AutoWarehouse" choice for the initial order.
PlayerNumber String The API displays the selected "PlayerName" choice for the initial order.
Quantity Integer The API displays the selected "Quantity" choice for the initial order.
Warehouse String The API displays the selected "Warehouse" choice for the initial order.
Cost Decimal The API displays the cost of product.
OrderErrors: List Of Objects
Response String The error message related to the order level.
SubOrders: List Of Objects The "suborders" field designates the warehouse location for dispatching the entire order or a part of it.
Warehouse String Warehouse location for dispatching the order or part of it.
SubOrderID String The order number recorded in the CHAMPRO system.
SubOrderItems List Of Objects
SKU String Product SKU in suborder.
TeamName String TeamName in the suborder.
PlayerName String PlayerName in the suborder.
PlayerNumber String PlayerNumber in the suborder.
Quantity Integer Quantity of product in the suborder.
Warehouse String Warehouse location for product in the suborder.
Cost String Cost of product in the suborder.
SubOrderErrors List of Objects
Response String The error message related to the sub order level.
Example of Place Custom Order Response:
{
SessionID": "askjsjfh76b34lk",
"APICustomerKey": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"RequestType": "SUBMIT",
"Autowarehouse": "",
"RequestErrors": null,
"Orders": [
{
"PO": "TEST ORDER, DO NOT PROCESS (UNCORFB)",
"OrderType": "STOCK",
"ShipToLastName": "JOE",
"ShipToFirstName": "DOW",
"Address": "220 STREET AVE",
"Address2": "",
"City": "MYCITY",
"StateCode": "ST",
"ZIPCode": "24153",
"CountryCode": "USA",
"Phone": "1234567890",
"IsResidential": true,
"LeadTime": null,
"ProofFileURL": "https://sample-videos.com/img/Sample-jpg-image-50kb.jpg",
"TeamColor": "RED",
"CostTotal": 43.62,
"OrderItems": [
{

"SKU": "JBST8YACS",
"TeamName": "VALLEY",
"PlayerName": "SCUBY",
"PlayerNumber": "34",
"Quantity": 2,
"Cost": null
},
{
"SKU": "JBST8YACL",
"TeamName": "VALLEY",
"PlayerName": "EDNA",
"PlayerNumber": "30",
"Quantity": 1,
"Cost": null
},
{
"SKU": "JBST8YACL",
"TeamName": "VALLEY 2",
"PlayerName": "DOO",
"PlayerNumber": "35",
"Quantity": 3,
"Cost": null
}
],
"OrderErrors": null
"SubOrders": [
{
"Warehouse": "DR",
"SubOrderID": 1212121,
"SubOrderItems": [
{
SKU": "JBST8YACS",
"TeamName": "VALLEY",
"PlayerName": "SCUBY",
"PlayerNumber": "34",
"Quantity": 2,
"Warehouse": "DR",
"Cost": null
}, {
"SKU": "JBST8YACL",
"TeamName": "VALLEY",
"PlayerName": "EDNA",
"PlayerNumber": "30",
"Quantity": 1,
"Warehouse": "DR",
"Cost": null
}, {
"SKU": "JBST8YACL",
"TeamName": "VALLEY 2",
"PlayerName": "DOO",
"PlayerNumber": "35",
"Quantity": 3,
"Warehouse": "DR",
"Cost": null
],
"SubOrderErrors": null
}
]
}
]
}

2.5.2 Stock Product Order

Place Stock Order Request Object Definition:
APICustomerKey String Unique Customer ID is for customer authentication.
Autowarehouse1 String The "Autowarehouse" feature in the CHAMPRO API automatically selects a warehouse for product delivery. It can be set as "YES" or left empty.
Orders List Of Objects
PO String "PO" represents the client's side order number.
OrderType String The Order Type for inclusion in the order, chosen from: CUSTOM, STOCK.
ShipToLastName String Recipient's last name for shipping.
ShipToFirstName String Recipient's first name for shipping.
Address String Recipient's street number and street name for shipping.
Address2 String Recipient's second address line for shipping.
City String Recipient's city for shipping.
StateCode String Recipient's state code for shipping.
ZIPCode String Recipient's ZIP code for shipping.
CountryCode String Recipient's country code for shipping.
Phone String Recipient's phone number for shipping.
ShippingMethod String Recipient's prefered Shipping Method. The required shipping method is specified below. Please refer to the separate table for the list of available shipping methods.
ShippingCustomerAccount String Recipient's shipping account is required for Collect and Bill Third Party billing type, otherwise optional.
IsResidential Boolean The recipient's residence type. A Boolean value of "1" represents "residential" and "0" indicates "commertial".
OrderItems List of Object
SKU String Name of Product SKU.
Warehouse1 String The warehouse code for inclusion in the order, chosen from: IL, CA, DR.
Quantity2 Integer The quantity of selected SKUs for the order.
  • Options that are devoid of special markings are required for Stock Product order.
  • 1 - The field is optional in Stock Product order.
  • 2 - If the Minimum Order Quantity (MOQ) is greater than 0, the product must be ordered in quantity increments of the MOQ.
Shipping MethodBilling type
UPS GROUND
UPS 3 DAY SELECT
UPS 2ND DAY AIR A.M.
UPS 2ND DAY AIR
UPS NEXT DAY AIR SAVER
UPS NEXT DAY AIR EARLY
UPS NEXT DAY AIR
FIRST_OVERNIGHT
PRIORITY_OVERNIGHT
STANDARD_OVERNIGHT
FEDEX_2_DAY_AM
FEDEX_2_DAY
FEDEX_EXPRESS_SAVER
GROUND_HOME_DELIVERY
SMART_POST
FEDEX_GROUND
PRIORITY OVERNIGHT THIRD PARTYBillThirdParty
PRIORITY OVERNIGHT COLLECTCollect
FEDEX 2 DAY THIRD PARTYBillThirdParty
FEDEX 2 DAY COLLECTCollect
FEDEX EXPRESS SAVER THIRD PARTYBillThirdParty
FEDEX EXPRESS SAVER COLLECTCollect
FEDEX GROUND THIRD PARTYBillThirdParty
GROUND HOME DELIVERY THIRD PARTYBillThirdParty
FEDEX GROUND COLLECTCollect
UPS NEXT DAY AIR THIRD PARTYBillThirdParty
UPS NEXT DAY AIR EARLY COLLECTCollect
UPS NEXT DAY AIR SAVER THIRD PARTYBillThirdParty
UPS NEXT DAY AIR SAVER COLLECTCollect
UPS NEXT DAY AIR COLLECTCollect
UPS 2ND DAY AIR THIRD PARTYBillThirdParty
UPS 2ND DAY AIR COLLECTCollect
UPS 3 DAY SELECT THIRD PARTYBillThirdParty
UPS 3 DAY SELECT COLLECTCollect
UPS GROUND THIRD PARTYBillThirdParty
UPS GROUND COLLECT Collect
FEDEX 2 DAY ONE RATE
FEDEX_FREIGHT_ECONOMY3
FEDEX_FREIGHT_PRIORITY3
CUSTOM CO3
  • 3 - LTL Load.
Example of Stock Product Place Order:
{
"APICustomerKey":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"Autowarehouse":"YES"
"Orders":[
{
"PO":"TEST ORDER, DO NOT PROCESS",
"OrderType":"STOCK",
"ShipToLastName":"LASTNAME",
"ShipToFirstName":"FIRSTNAME",
"Address":"123 STREET AVE",
"Address2":"APT 7",
"City":"CITY",
"StateCode":"ST",
"ZIPCode":"12345",
"CountryCode":"USA",
"Phone":"1234567890",
"ShippingMethod":"UPS NEXT DAY AIR THIRD PARTY",
"ShippingCustomerAccount":"9999999",
"IsResidential":1,
"OrderItems":[
{
"SKU":"BS25YGRBM",
"Warehouse":"IL",
"Quantity":2
},
{
"SKU":"HJ2ABM",
"Warehouse":"IL",
"Quantity":3
},
{
"SKU":"A068RYL",
"Warehouse":"IL",
"Quantity":8
},
{
"SKU":"BP62YGHBPS",
"Warehouse":"CA",
"Quantity":1
},
{
"SKU":"BBS44ABS",
"Warehouse":"CA",
"Quantity":3
}
]
}
}
Place Order Response Object Definition:
SessionID String After order placement, the API returns CHAMPRO identification key of current request.
APICustomerKey String After order placement, the API returns the initiating customer's APICustomerKey.
RequestType String After order placement, the API returns Request Type "Order".
Autowarehouse String The API displays the selected "Autowarehouse" choice for the initial order.
RequesErrors List of Objects
Response String The error message related to the request level.
Orders List Of initial orders
PO String The API displays the selected "PO" choice for the initial order.
OrderType String The API displays the selected "OrderType" choice for the initial order.
ShipToLastName String The API displays the selected "ShipToLastName" choice for the initial order.
ShipToFirstName String The API displays the selected "ShipToFirstName" choice for the initial order.
Address String The API displays the selected "Address" choice for the initial order.
Address2 String The API displays the selected "Address2" choice for the initial order.
City String The API displays the selected "City" choice for the initial order.
StateCode String The API displays the selected "StateCode" choice for the initial order.
ZIPCode String The API displays the selected "ZIPCode" choice for the initial order.
CountryCode String The API displays the selected "CountryCode" choice for the initial order..
Pnone String The API displays the selected "Pnone" choice for the initial order.
IsResidential Boolean The API displays the selected "IsResidential" choice for the initial order.
LeadTime String The API displays the selected "LeadTime" choice for the initial order.
ProofFileURL String The API displays the selected "ProofFile" choice for the initial order.
TeamColor String The API displays the selected "TeamColor" choice for the initial order.
CostTotal Decimal The API displays the total cost of processed products.
OrderItems List of Object
SKU String The API displays the selected "SKU" choice for the initial order.
TeamName String The API displays the selected "TeamName" choice for the initial order.
PlayerName String The API displays the selected "PlayerName" choice for the initial order.
PlayerNumber String The API displays the selected "PlayerNumber" choice for the initial order.
Quantity Integer The API displays the selected "Quantity" choice for the initial order.
Warehouse String The API displays the selected "Warehouse" choice for the initial order.
Cost Decimal The API displays the cost of product.
OrderErrors: List Of Objects
Response String The error message related to the order level.
SubOrder: List Of Objects The "suborders" field designates the warehouse location for dispatching the entire order or a part of it.
Warehouse String Warehouse location for dispatching the order or part of it.
SubOrderID String The order number recorded in the CHAMPRO system.
SubOrderItems List Of Objects
SKU String Product SKU in suborder.
TeamName String TeamName in the suborder.
PlayerName String PlayerName in the suborder.
PlayerNumber String PlayerNumber in the suborder.
Quantity Integer Quantity of product in the suborder.
Warehouse String Warehouse location for product in the suborder.
Cost String Cost of product in the suborder.
SubOrderErrors List of Objects
Response String The error message related to the sub order level.
Example of Place Stock Order Response:
{
SessionID": "askjsjfh76b34lk",
"APICustomerKey": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"RequestType": "ORDER",
"Autowarehouse": "YES",
"RequestErrors": null,
"Orders": [
{
"PO": "TEST ORDER, DO NOT PROCESS (UNCORFB)",
"OrderType": "STOCK",
"ShipToLastName": "JOE",
"ShipToFirstName": "DOW",
"Address": "220 STREET AVE",
"Address2": "",
"City": "MYCITY",
"StateCode": "ST",
"ZIPCode": "24153",
"CountryCode": "USA",
"Phone": "1234567890",
"IsResidential": true,
"LeadTime": null,
"ProofFileURL": null,
"TeamColor": null,
"CostTotal": 43.62,
"OrderItems": [
{
"SKU":"BS25YGRBM",
"TeamName": null,
"PlayerName": null,
"PlayerNumber": null,
"Warehouse":"IL",
"Quantity":2,
"Cost": null
},
{
"SKU":"HJ2ABM",
"TeamName": null,
"PlayerName": null,
"PlayerNumber": null,
"Warehouse":"IL",
"Quantity":3,
"Cost": null
},
{
"SKU":"A068RYL",
"TeamName": null,
"PlayerName": null,
"PlayerNumber": null,
"Warehouse":"IL",
"Quantity":8,
"Cost": null
},
{
"SKU":"BP62YGHBPS",
"TeamName": null,
"PlayerName": null,
"PlayerNumber": null,
"Warehouse":"CA",
"Quantity":1,
"Cost": null
},
{
"SKU":"BBS44ABS",
"TeamName": null,
"PlayerName": null,
"PlayerNumber": null,
"Warehouse":"CA",
"Quantity":3,
"Cost": null
}
],
"OrderErrors": [
{
"Response": "E2.8.3: BP62YGHBPS - Not enough Inventory."
},
{
"Response": "E2.8.3: A068RYL - Not enough Inventory."
}
],
"SubOrders": [
{
"Warehouse": "CA",
"SubOrderID": 1212121,
"SubOrderItems": [
{
SKU": "BBS44ABS",
"TeamName": "",
"PlayerName": "",
"PlayerNumber": "",
"Quantity": 3,
"Warehouse": "CA",
"Cost": 10.17
}
],
"SubOrderErrors": null
},
{
"Warehouse": "IL",
"SubOrderID": 1212133,
"SubOrderItems": [
{
SKU": "HJ2ABM",
"TeamName": "",
"PlayerName": "",
"PlayerNumber": "",
"Quantity": 3,
"Warehouse": "IL",
"Cost": 19.47
},
{
SKU": "BS25YGRBM",
"TeamName": "",
"PlayerName": "",
"PlayerNumber": "",
"Quantity": 2,
"Warehouse": "IL",
"Cost": 13.98
}
],
"SubOrderErrors": null
}
]
}
]
}

2.6 Get Order Status

The Order Status request provides real-time updates about ongoing order status, including processing, fulfillment, and related details.
Order Status is retrieved using a GET request.
Resource URL:
https://api.champrosports.com/api/Order/OrderStatus
The Order Status request requires two mandatory parameters: APICustomerKey and OrderNumber (Sub Order ID from "Place Order").
Example of Order Status Request:
https://api.champrosports.com/api/Order/OrderStatus?OrderNumber=1079914&APICustomerKey=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Order Status Response Object Definition:
OrderNumber String The API presents the chosen "OrderNumber" option of the initial order.
PO String The API presents the "PO" option of the initial order.
SALESID String A sales ID is a unique number assigned by the CHAMPRO system to the current order during processing.
Lines List of Objects
TrackingNumber String A tracking number is a carrier-assigned identifier for packages during shipping, allowing tracking and monitoring of delivery progress.
ShippingCarrier String The carrier chosen by Champro for package delivery.
ShippingService String The shipping service chosen by Champro for package delivery.
SKUs List of Objects
SKU String SKU within the package.
Quantity Integer Quantity of specified SKU in the package.
Status String The submitted order's status, providing progress and details.
Error String Error retrieving order status.
Example of Order Status Response:
{
"OrderNumber": 1079914,
"PO": "DFRANK051523",
"SalesID": "SO-2000712",
"Lines": [
{
"TrackingNumber": "772307173547",
"ShippingCarrier": "FedEx",
"ShippingService": "FedEx, Ground",
"SKUs": [
{
"SKU": "HXMCBLS",
"Quantity": 1
}, {

"SKU": "HXMGOS", "Quantity": 1
}
]
}
], "Status": "Invoiced",
"Error": null
}