The CommerceInterface API end-point URL is https://scm.commerceinterface.com/api/v3/.
All API calls require authentication. Authentication credentials are Supplier ID and Token. Suppliers can generate access token by clicking here. Parameters for Supplier ID and Token are supplier_id and token respectively. All api calls must send both the parameters.
To get a list of orders in Supplier's account.
| Parameter | Description |
|---|---|
| supplier_id | CommerceInterface supplier id. |
| token | Authentication token. Suppliers can generate access token by clicking here. |
curl -XGET "https://scm.commerceinterface.com/api/v3/get_orders?supplier_id=1&token=xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT"Response:
{
"meta": {
"no_of_pages": 1,
"current_page": 1,
"max_items_per_page": 250,
"no_of_items": 1
},
"data": [{
"orderid": "FFB7A681BE",
"customer": {
"city": "BRADFORD",
"state": null,
"name": "SOME BODY HERE",
"zip": "SOME ZIP",
"country": null,
"address1": "901",
"address2": "GREENFIELDS LANE",
"phone": "01234 982103"
},
"line_items": [{
"status": "open",
"weight": 0.0,
"bom_sku": "2xAB831337NH09",
"gg_account_number": "332312",
"opp_name": "OPPORTUNITY NAME",
"ci_lineitemid": 54553918,
"sku": "024409387203",
"permalink": "SOME PERMALINK",
"name": "SOME PACK OF 6",
"po_number": "SOME PO NUMER",
"channel_sku_provided": "a0YC000000TTsch",
"fulfillment_lineitem_id": "34054258",
"unit_price": 10.99,
"gift_message": "SOME GIFT MESSAGE",
"quantity": 1,
"groupon_cost" : 12.09,
"ship_by_date": "02/16/2015 08:10AM UTC"
}],
"shipping": {
"product_dimension_unit": "inches",
"product_weight": "1.93",
"product_weight_unit": "pounds",
"incoterms": "INCO TERMS",
"3PL_warehouse": "OH",
"3PL_name": "INNOTRAC",
"product_width": "1.5",
"product_length": "12.75",
"carrier": "UPS",
"product_height": "12.75",
"hts_code": "",
"method": "BEST"
},
"date": "01/16/2015 08:10AM UTC",
"amount": {
"total": 10.99,
"shipping": 0
},
"supplier": "SUPPLIER NAME",
"opp_id": "OPPORTUNITY ID",
"fulfillment_method": "FULFILLMENT METHOD"
}],
"success": true
}
import requests #requires "requests" package
response = requests.get('https://scm.commerceinterface.com/api/v3/get_orders',
data={'supplier_id':'1', 'token':'xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT'}).json()
if response['success'] == True:
#Your business logic here
print response
else:
#Alarm!
pass
<?php
$response = file_get_contents ( 'https://scm.commerceinterface.com/api/v3/get_orders?supplier_id=1&token=xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT' );
if( $response ) {
$response_json = json_decode ( $response );
if( $response_json->success == true ) {
//Your business logic here
} else {
//Alarm!
}
}
| Parameters | Description |
|---|---|
| start_datetime | Use this parameter if you want to pull orders between a time range. It should be used in combination with end_datetime parameter. Both the parmaeters should be in 24 hours range. Timestamp should be in MM/DD/YYYY HH:MM format (UTC). All order data is returned irrespective they are marked as exported or not. |
| end_datetime | Same as start_datetime except that it is used to determine the end of time range. |
| page | The responses has 250 items per page. To get data from next page use this parameter. |
This endpoint is to acknowledge that lineitem(s) has been exported.
| Parameter | Description |
|---|---|
| supplier_id | CommerceInterface supplier id. |
| token | Authentication token. Suppliers can generate access token by clicking here. |
| ci_lineitem_ids | A list of ci_lineitemid in json format. It supports upto 1000 ci_lineitemid at a time. |
curl -XPOST "https://scm.commerceinterface.com/api/v3/mark_exported" \ -d"supplier_id=1" \ -d"token=xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT" \ -d"ci_lineitem_ids=[54553919, 54553920]"Response:
{
"success": true
}
import requests #requires "requests" package
import json
response = requests.post('https://scm.commerceinterface.com/api/v3/mark_exported',
data={'supplier_id':'1', 'token':'xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT',
'ci_lineitem_ids':json.dumps([54553919, 54553920])}).json()
if response['success'] == True:
#Successfully marked as exported (only items which are not already marked exported)
pass
else:
pass
<?php
// requires PHP cURL http://no.php.net/curl
$datatopost = array (
"supplier_id" => "1",
"token" => "xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT",
"ci_lineitem_ids" => json_encode ( array (54553919, 54553920) ),
);
$ch = curl_init ("https://scm.commerceinterface.com/api/v3/mark_exported");
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $datatopost);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec ($ch);
if( $response ) {
$response_json = json_decode( $response );
if( $response_json->success == true ) {
//Successfully marked as exported (only items which are not already marked exported
} else {
}
}
To send tracking information about a lineitem using ci_lineitem_id.
| Parameter | Description |
|---|---|
| supplier_id | CommerceInterface supplier id. |
| token | Authentication token. Suppliers can generate access token by clicking here. |
| tracking_info | A list of json objects having ci_lineitem_id, carrier & tracking. Additionally it also supports quantity which you can use if you ship items less than the ordered quantity. It supports upto 1000 lineitems at a time. In case a lineitem is already closed or cancelled it will be skipped. In case of any other error no data will be saved. |
curl -XPOST "https://scm.commerceinterface.com/api/v3/tracking_notification" \
-d"supplier_id=1" \
-d"token=xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT" \
-d'tracking_info=[{"carrier": "UPS", "ci_lineitem_id": 54553918, "tracking": "123456"}, {"quantity": 1, "carrier": "UPS", "ci_lineitem_id": 54553919, "tracking": "234567"}]'
Response:
{
"success": true,
"data": {
"non_open_ids": []
}
}
import requests #requires "requests" package
import json
req_data = {'supplier_id':'1',
'token':'xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT',
'tracking_info':json.dumps([
{"carrier": "UPS", "ci_lineitem_id": 54553918, "tracking": "123456"},
{"quantity": 1, "carrier": "UPS", "ci_lineitem_id": 54553919, "tracking": "234567"}])}
response = requests.post('https://scm.commerceinterface.com/api/v3/tracking_notification',
data=req_data).json()
if response['success'] == True:
#Successfully saved tracking info of items other than those in data["non_open_ids"] list
pass
else:
pass
<?php
// requires PHP cURL http://no.php.net/curl
$datatopost = array (
"supplier_id" => "1",
"token" => "xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT",
"tracking_info" => json_encode ( array ( "carrier" => "UPS", "ci_lineitem_id" => 54553918, "tracking" => "123456"), array ( "quantity" => 1, "carrier" => "UPS", "ci_lineitem_id" => 54553919, "tracking" => "234567") ),
);
$ch = curl_init ("https://scm.commerceinterface.com/api/v3/tracking_notification");
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $datatopost);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec ($ch);
if( $response ) {
$response_json = json_decode( $response );
if( $response_json->success == true ) {
//Successfully saved tracking info of items other than those in data["non_open_ids"] array
} else {
}
}
To send tracking information about a lineitem using fulfillment_lineitem_id.
| Parameter | Description |
|---|---|
| supplier_id | CommerceInterface supplier id. |
| token | Authentication token. Suppliers can generate access token by clicking here. |
| tracking_info | A list of json objects having fulfillment_lineitem_id, carrier & tracking. Additionally it also supports quantity which you can use if you ship items less than the ordered quantity. It supports upto 1000 lineitems at a time. In case a lineitem is already closed or cancelled it will be skipped. In case of any other error no data will be saved. |
curl -XPOST "https://scm.commerceinterface.com/api/v3/lineitem_tracking_notification" \
-d"supplier_id=1" \
-d"token=xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT" \
-d'tracking_info=[{"carrier": "UPS", "fulfillment_lineitem_id": "34054258", "tracking": "123456"}, {"quantity": 1, "carrier": "UPS", "fulfillment_lineitem_id": "3074475935094527184", "tracking": "234567"}]'
Response:
{
"success": true,
"data": {
"non_open_ids": []
}
}
import requests #requires "requests" package
import json
req_data = {'supplier_id':'1',
'token':'xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT',
'tracking_info':json.dumps([
{"carrier": "UPS", "fulfillment_lineitem_id": "34054258", "tracking": "123456"},
{"quantity": 1, "carrier": "UPS", "fulfillment_lineitem_id": "3074475935094527184", "tracking": "234567"}])}
response = requests.post('https://scm.commerceinterface.com/api/v3/lineitem_tracking_notification',
data=req_data).json()
if response['success'] == True:
#Successfully saved tracking info of items other than those in data["non_open_ids"] list
pass
else:
pass
<?php
// requires PHP cURL http://no.php.net/curl
$datatopost = array (
"supplier_id" => "1",
"token" => "xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT",
"tracking_info" => json_encode ( array ( "carrier" => "UPS", "fulfillment_lineitem_id" => "34054258", "tracking" => "123456"), array ( "quantity" => 1, "carrier" => "UPS", "fulfillment_lineitem_id" =>"3074475935094527184", "tracking" => "234567") ),
);
$ch = curl_init ("https://scm.commerceinterface.com/api/v3/lineitem_tracking_notification");
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $datatopost);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec ($ch);
if( $response ) {
$response_json = json_decode( $response );
if( $response_json->success == true ) {
//Successfully saved tracking info of items other than those in data["non_open_ids"] array
} else {
}
}
To get a list of purchaseorders in Supplier's account within given date range.
| Parameter | Description |
|---|---|
| supplier_id | CommerceInterface supplier id. |
| token | Authentication token. Suppliers can generate access token by clicking here. |
curl -XGET "https://scm.commerceinterface.com/api/v3/purchase_orders?supplier_id=1&token=xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT"Response:
{
"po_details": [
{
"supplier":"3pl excel"
"po_number": "POUSGG00000xxxF5",
"po_created_on": "SOME DATE",
"permalink": "SOME PERMALINK",
"fulfillment_provider": "SOME FULFILLMENT PROVIDER",
"po_upc_list":
[
{
"upc": "UPC1",
"received_quantity": 100,
"total_quantity": 300,
"expected_quantity": 200,
"total_weight": 0.0 ,
"weight_unit":pounds
},
]
},
]
"success": true
}
import requests #requires "requests" package
response = requests.get('https://scm.commerceinterface.com/api/v3/purchase_orders',
data={'supplier_id':'1', 'token':'xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT','start_date':'1377734400','end_date':'1379289600'}).json()
if response['success'] == True:
#Your business logic here
print response
else:
#Alarm!
pass
<?php
$response = file_get_contents ( 'https://scm.commerceinterface.com/api/v3/purchase_orders?supplier_id=1&token=xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT&start_date=1377734400&end_date=1379289600' );
if( $response ) {
$response_json = json_decode ( $response );
if( $response_json->success == true ) {
//Your business logic here
} else {
//Alarm!
}
}
| Parameters | Description |
|---|---|
| start_datetime | Use this parameter if you want to pull purchase orders between a time range. It should be used in combination with end_datetime parameter. Timestamp should be in epoch format.Epoch time can be found here. Select "GMT" in timezone dropdown . |
| end_datetime | Same as start_datetime except that it is used to determine the end of time range. |
| page | The responses has 25 items per page. To get data from next page use this parameter. |
This endpoint is to acknowledge that purchaseorder has been exported.
| Parameter | Description |
|---|---|
| supplier_id | CommerceInterface supplier id. |
| token | Authentication token. Suppliers can generate access token by clicking here. |
| po_number | Valid purchaseorder number should be provided . |
curl -XPOST "https://scm.commerceinterface.com/api/v3/purchase_orders/acknowledgement" \ -d"supplier_id=1" \ -d"token=xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT" \ -d"po_number=POUSGG00XXX123"Response:
{
"success": true,
"po_number":POUSGG00XXX123
}
import requests #requires "requests" package
import json
response = requests.post('https://scm.commerceinterface.com/api/v3/purchase_orders/acknowledgement',
data={'supplier_id':'1', 'token':'xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT',
'po_number':'POUSGG00XXX123'}).json()
if response['success'] == True:
#Successfully marked as acknowledged (only items which are not already marked acknowledged)
pass
else:
pass
<?php
// requires PHP cURL http://no.php.net/curl
$datatopost = array (
"supplier_id" => "1",
"token" => "xYRPKcoakMoiRzWgKLV5TqPSdNAaZQT",
"po_number" => "POUSGG00XXX123",
);
$ch = curl_init ("https://scm.commerceinterface.com/api/v3/purchase_orders/acknowledgement");
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $datatopost);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec ($ch);
if( $response ) {
$response_json = json_decode( $response );
if( $response_json->success == true ) {
//Successfully marked as acknowledged (only items which are not already marked acknowledged
} else {
}
}