Fenix Unified Shipping API
Fenix Unified Shipping API combines three important aspects of post purchase journey into a single API. This API includes the following functionality.
Cartonization
Order Sourcing
Rate Shopping
Fenix Order Sourcing is basically a means to route the order to a fulfillment location that can deliver the order to the customer as fast as possible in a cost effective way. Fenix Order Sourcing rules can be prioritized and can be chosen which rule should be applied before another. A user friendly rules screen will help the business user to change the rules, prioritize and add/remove them with ease and any change that is made to the rules will effect immediately.
Fenix Rate Shopping provides the retailers the ability to show the optimal rates on the checkout page to the consumer by comparing the rates across multiple carrier services. At the time of Label printing, it combines the power of its Rate Shopping engine with the Transit Time Models of various carrier services and helps the retailers in scheduling the shipping while still satisfying the customers delivery expectations.
Flow
Integration Touchpoints
Sample API Request and Response
Attribute | Description |
---|---|
Endpoint | https://postpurchase.fenixcommerce.com/fenix/oms/crs/v1/rateshopping/get-shipping-info |
Method | POST |
Headers | tenant_id auth_token |
Request Sample | {
"request_id": "4ba0d463-6476-47f8-b67a-5c8c4bbcf3da",
"shipment_id": "b7866a89-8dc1-4bac-8c4b-be1fabb56cb7",
"to": {
"fname": "",
"lname": "",
"address1": "4320 Stevens Creek Blvd",
"address2": "",
"city": "San Jose",
"country": "US",
"state": "CA",
"zipcode": "95129",
"residential": true,
"po_box": false
},
"from": {
"fname": "",
"lname": "",
"address1": "2325 Enborg Ln",
"address2": "",
"city": "San Jose",
"country": "US",
"state": "CA",
"zipcode": "95128",
"residential": false,
"po_box": false
},
"warehouse_id": "3bcde514-c7d7-40d5-9e41-2d0c1303810f",
"product_infos": [
{
"sku": "abc",
"quantity": 1,
"variant_id": 123,
"product_id": 123,
"dimensions": {
"length": 6,
"width": 8,
"height": 6,
"units": "IN"
},
"weight": {
"value": 1,
"units": "LB"
}
}
],
"shipment_info": {
"package_name": null,
"dimensions": {
"length": 6,
"width": 8,
"height": 6,
"units": "IN"
},
"weight": {
"value": 1,
"units": "LB"
},
"product_infos": [
{
"sku": "abc",
"quantity": 1,
"variant_id": 123,
"product_id": 123,
"dimensions": {
"length": 6,
"width": 8,
"height": 6,
"units": "IN"
},
"weight": {
"value": 1,
"units": "LB"
}
}
]
},
"expected_delivery_date": "2023-10-31T01:30+01:00",
"expected_shipping_date": "2023-10-31T01:30+01:00",
"deliver_within_days": 10
} |
Response | {
"request_id": "4ba0d463-6476-47f8-b67a-5c8c4bbcf3da",
"shipment_id": "b7866a89-8dc1-4bac-8c4b-be1fabb56cb7",
"to": {
"fname": "",
"lname": "",
"address1": "4320 Stevens Creek Blvd",
"address2": "",
"city": "San Jose",
"country": "US",
"state": "CA",
"zipcode": "95129",
"residential": true,
"po_box": false
},
"expected_delivery_date": "2023-10-31T01:30+01:00",
"expected_shipping_date": "2023-10-31T01:30+01:00",
"deliver_within_days": 10,
"error_info": {
"error_code": "123",
"error_message": "error message",
"description": "message description"
},
"shipment_infos": [
{
"fulfillment_info": {
"loc_id": "54862250135",
"address": {
"fname": "",
"lname": "",
"address1": "4320 Stevens Creek Blvd",
"address2": "",
"city": "San Jose",
"country": "US",
"state": "CA",
"zipcode": "95129",
"residential": true,
"po_box": false
}
},
"shipment_info": [
{
"shipment_id": "abc",
"allocation_info": [
{
"sku_id": "black-leather-bag-12",
"product_id": "7106172944535",
"variant_id": "42499122102423",
"line_item_id": null,
"requested_quantity": 1,
"allocated_quantity": 1
}
],
"cartonization_info": {
"dimensions": {
"length": 6,
"width": 8,
"height": 6,
"units": "IN"
},
"weight": {
"value": 1,
"units": "LB"
}
},
"rate_shopping_info": [
{
"recommended_service": {
"carrier": "UPS",
"service": {
"code": "04",
"name": null
},
"ship_cost": {
"amount": 6.74,
"currency": "USD"
},
"transit_info": {
"delivery_date": "2023-10-31T01:30+01:00",
"transit_time": 2
},
"ship_by_date": "2023-10-31T01:30+01:00",
"delivery_accuracy_percent": 0.0,
"metainfo": {
"included": true,
"exclusion_code": null,
"exclude_message": null
}
},
"services_excluded": [
{
"carrier": "UPS",
"service": {
"code": "04",
"name": null
},
"ship_cost": {
"amount": 6.74,
"currency": "USD"
},
"transit_info": {
"delivery_date": "2023-10-31T01:30+01:00",
"transit_time": 2
},
"ship_by_date": "2023-10-31T01:30+01:00",
"delivery_accuracy_percent": 0.0,
"metainfo": {
"included": true,
"exclusion_code": null,
"exclude_message": null
}
}
]
}
]
}
]
}
]
} |
Request Attribute Definitions
Attribute | Required | Description |
---|---|---|
request_id | true | A unique identifier of the request |
shipment_id | true | Shipment id of the shipment |
request.from | true | Address of the shipper |
from.fname | false | First name of the shipper |
from.lname | false | Last name of the shipper |
from.address_line1 | true | The line 1 of the shipper address |
from.address_line2 | false | The line 2 of the shipper address |
from.city | false | The city of the shipper |
from.state | false | The state of the shipper |
from.zipcode | true | The zip code of the shipper |
from.country | true | The country of the shipper (Use ISO code. Ex, US, CA, IN, etc) |
from.residential | false | Flag to denote if the shipper address is a residential |
from.po_box | false | Flag to denote if the shipper address is a po box |
to | true | Address of the buyer |
to.fname | false | First name of the buyer |
to.lname | false | Last name of the buyer |
to.address_line1 | true | The line 1 of the buyer address |
to.address_line2 | false | The line 2 of the buyer address |
to.city | false | The city of the buyer |
to.state | false | The state of the buyer |
to.zipcode | true | The zip code of the buyer |
to.country | true | The country of the buyer (Use ISO code. Ex, US, CA, IN, etc) |
to.residential | false | Flag to denote if the buyer address is a residential |
to.po_box | false | Flag to denote if the buyer address is a po box |
warehouse_id | false | The warehouse id if the details are configured it in Fenix |
shipment_info | true | Details of the shipment |
shipment_info.package_name | false Note: Must be specified when the dimensions are not specified | Specify the kind of package. You can specify CUSTOM for your own packaging dims or else specify the carrier’s own packaging info. Examples of carrier packaging info
|
shipment_info.dimensions | false Note: Must be specified when the package name is not specified | The dimension details of the shipment |
shipment_info.dimensions.length | true | The length of the shipping package |
shipment_info.dimensions.width | true | The width of the shipping package |
shipment_info.dimensions.height | true | The height of the shipping package |
shipment_info.dimensions.units | false | The units of the above dimensions. Valid Values: IN, CM Default: IN |
shipment_info.weight | false | The weight details of the shipment |
shipment_info.weight.value | true | The weight of the shipping package |
shipment_info.weight.units | false | The units of the above weight. Valid Values: LB, KG, OZ Default: LB |
shipment_info.product_infos | false | The SKUs and their quantities shipping as part of the shipment |
shipment_info.product_infos.sku | false | The SKU Id |
shipment_info.product_infos.quantity | false | The number of units of the above SKU |
shipment_info.product_infos.variant_id | false | The variant id of the above SKU (applies only to shopify platform) |
shipment_info.product_infos.product_id | false | The product id of the above SKU |
shipment_info.product_infos.weight | false | The weight details of the above SKU |
shipment_info.product_infos.weight.value | true | The weight of the above SKU |
shipment_info.product_infos.weight.units | false | The units of the above weight. Valid Values: LB, KG, OZ Default: LB |
shipment_info.product_infos.dimensions | false Note: Must be specified when the package name is not specified | The dimension details of the SKU |
shipment_info.product_infos.dimensions.length | true | The length of the SKU |
shipment_info.product_infos.dimensions.width | true | The width of the SKU |
shipment_info.product_infos.dimensions.height | true | The height of the SKU |
shipment_info.product_infos.dimensions.units | false | The units of the above dimensions. Valid Values: IN, CM Default: IN |
expected_delivery_date | false | Expected delivery date of the shipment ISO Date Time Format: Example: 2000-10-31T01:30:00.000-05:00 |
expected_shipping_date | false | Expected shipping date of the shipment ISO Date Time Format: Example: 2000-10-31T01:30:00.000-05:00 If the date is not specified, the current date and time will be taken as the shipping date |
deliver_within_days | false | Expected days to deliver the shipment |
Response Attribute Definitions
Attribute | Required | Description |
---|---|---|
response.request_id | true | A unique identifier of the request |
shipment_id | true | Shipment id of the shipment |
to | true | Same as the request’s buyer address |
expected_delivery_date | false | Expected delivery date of the shipment ISO Date Time Format: Example: 2000-10-31T01:30:00.000-05:00 |
expected_shipping_date | false | Expected shipping date of the shipment If the date is not specified, the current date and time will be taken as the shipping date |
deliver_within_days | false | Expected days to deliver the shipment |
shipment_infos | true | Complete details of individual shipments. The details may contain one or more attributes
|
shipment_infos.fulfillment_info | true | Fulfillment location details |
shipment_infos.fulfillment_info.loc_id | false | The warehouse location id |
shipment_infos.fulfillment_info.address | true | The address information about the fulfillment location |
shipment_infos.shipment_info | true | The shipping information of this shipment for this location |
shipment_infos.shipment_info.allocation_info | false | The allocation details of this shipment. The details contains the following information
|
shipment_infos.shipment_info.cartonization_info | true | The carton/packaging details of this shipment |
shipment_infos.shipment_info.cartonization_info.dimensions | true | The dimensions of this shipment. They contains the following information
|
shipment_infos.shipment_info.cartonization_info.weight | true | The weight of this shipment. |
shipment_infos.shipment_info.rate_shopping_info | true | The rate shopping information of this shipment |
shipment_infos.shipment_info.rate_shopping_info.recommended_service | true | Fenix suggested service for the request |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.carrier | true | The carrier of the shipping service |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.service | true | The service details of the service |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.service.code | true | The service code of the service |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.service.name | false | The service name of the service |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.ship_cost | true | The estimated shipping cost of the service |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.ship_cost.amount | true | The shipping cost amount of the service |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.ship_cost.currency | true | The currency of the shipping cost |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.transit_info | true | The transit time information of the service |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.transit_info.delivery_date | true | The Fenix estimated delivery date of the above service |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.transit_info.transit_time | true | The Fenix estimated transit time of the above service |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.ship_by_date | true | The maximum shipping date by when the service can still deliver the shipment |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.delivery_accuracy_percent | false | The delivery accuracy percent of the service based on the historic delivery information |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.metainfo | false | Additional information about the service |
response.suggested_service_responses.metainfo.included | true | Flag to represent the service suggested by Fenix. True if suggested service, False if not |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.metainfo.exclusion_code | true | Exclusion code if the service is rejected as part of Fenix’s rate shopping |
shipment_infos.shipment_info.rate_shopping_info.recommended_service.metainfo.exclude_message | true | Exclusion description if the service is rejected as part of Fenix’s rate shopping |
shipment_infos.shipment_info.rate_shopping_info.excluded_service_responses | false | Contains a list of services rejected by Fenix as part of Fenix’s rate shopping |