Post Orders
This REST API is used by marketplaces to post new orders in Uniware. Generally, the orders are fetched by Uniware using the Get Orders API, however this is an additional functionality where the marketplaces can post the orders to the Uniware.
Tip
- This is an optional feature used only when the marketplaces wish to post orders in Uniware.
- This API request is initiated by the marketplace to post information (orders) in Uniware. For such APIs a unique static securitykey is provided by the Unicommerce to the marketplaces for authentication. This securitykey should be passed in header as mentioned below.
- It is recommended to check out Notes for the reader. You might find this helpful as it contains Guidelines for using API references and Terminologies used here.
Flow
Tip
Complete integration flow is available on Basic Overview page.
Basic Information
NAME | DETAILS |
---|---|
Usage: | Optional, Either Get Orders or Post Orders API to be used |
URL: | https://genericproxy.unicommerce.com |
Endpoint: | /uc/v1/order |
Request Type: | POST |
Scheme: | HTTPS |
Header (Content-Type): | application/json |
Header (clientid): | ID (provided by Unicommerce) |
Header (merchantid): | username |
Header (securitykey): | key (provided by Unicommerce), Eg.: 12121212-232323-232323 |
NOTE:
The charges and price details can be provided either at order level or order item level (charges which are common), but not in both. However, it is recommended to send price at order item level for better handling.
Request Payload
{
"id": "string",
"displayOrderNumber": "string",
"orderDate": "2022-12-05 08:12:53",
"orderStatus": "CREATED",
"sla": "2022-12-06 08:12:53",
"priority": 0,
"paymentType": "string",
"orderPrice": {
"currency": "string",
"totalCashOnDeliveryCharges": 0,
"totalDiscount": 0,
"totalGiftCharges": 0,
"totalStoreCredit": 0,
"totalPrepaidAmount": 0,
"totalShippingCharges": 0
},
"orderItems": [
{
"orderItemId": "string",
"status": "CREATED",
"productId": "string",
"variantId": "string",
"sku": "string",
"title": "string",
"shippingMethodCode": "STD",
"orderItemPrice": {
"cashOnDeliveryCharges": 0,
"sellingPrice": 0,
"shippingCharges": 0,
"discount": 0,
"totalPrice": 0,
"transferPrice": 0,
"currency": "string"
},
"quantity": 0,
"giftWrap": {
"giftWrapMessage": "string",
"giftWrapCharges": 0
},
"onHold": false,
"packetNumber": 0,
"facilityCode" : "string"
}
],
"taxExempted": false,
"cFormProvided": false,
"thirdPartyShipping": false,
"shippingAddress": {
"addressLine1": "string",
"addressLine2": "string",
"city": "string",
"country": "string",
"email": "string",
"name": "string",
"phone": "string",
"pincode": "string",
"state": "string"
},
"billingAddress": {
"addressLine1": "string",
"addressLine2": "string",
"city": "string",
"country": "string",
"email": "string",
"name": "string",
"phone": "string",
"pincode": "string",
"state": "string"
},
"additionalInfo": "string"
}
Request Payload Details
LEVEL | PARAMETER | TYPE | DESCRIPTION | MANDATORY | NOTES |
---|---|---|---|---|---|
1 | id | string | Unique identifier for an order (Order ID) | Yes | Eg: 12322 |
15 | displayOrderNumber | string | This number corresponds to Display Order Number on Unicommerce. | Opt | Eg: ABCDE, If the Marketplace does not have this field, don’t use this parameter then the Order ID will be used in Display Order Number. |
2 | orderDate | date | Order creation date on marketplace | Yes | Format : yyyy-MM-dd HH:mm:ss Eg: 2022-12-02 08:12:53 |
3 | orderStatus | string | Status of the order | Yes | Allowable: PENDING_VERIFICATION, CREATED, CANCELLED |
4 | sla | date | Max. time for which order processing can be delayed, beyond which the system will start giving alerts to take action. | Yes | Format: yyyy-MM-dd HH:mm:ss Eg: 2022-12-02 08:12:53 |
5 | priority | integer | Order fullfillment priority | No | Default: 0, High Value equals High Priority |
6 | paymentType | string | Mode of payment | No | Allowable: COD, PREPAID. |
7 | orderPrice | object | Sale Order Pricing Components | No | Opt: orderItemPrice, Rec: orderItemPrice |
7.1 | currency | string | Currency codes (3 digit) | No | Default: INR, Currency Codes |
7.2 | totalCashOnDeliveryCharges | number | Total Charges for COD | No | Sale order level |
7.3 | totalDiscount | number | Total Discount amount | No | Sale order level |
7.4 | totalGiftCharges | number | Total Gift charges | No | Sale order level |
7.5 | totalStoreCredit | number | Total Store Credit charges | No | Sale order level |
7.6 | totalPrepaidAmount | number | Total Amount paid while ordering | No | Sale order level |
7.7 | totalShippingCharges | number | Total Shipping charges | No | Sale order level |
8 | orderItems | list | List of items in an order | Yes | - |
8.1 | orderItemId | string | The ID of an item present inside the order | Yes | length must be between 0 and 45, This Id must be unique identifier as UC will use this id in consecutive apis. |
8.2 | status | string | Generally same as orderStatus . Only is case of partial order fulfilment the status of item in the order will vary. |
Yes | Allowable: CANCELLED, CREATED, DISPATCHED, DELIVERED |
8.3 | productId | string | Product ID of the item | Yes | length must be between 0 and 45 |
8.4 | variantId | string | Variant ID of the item | Yes | length must be between 0 and 45 |
8.5 | sku | string | SKU code of the item on the marketplace | Yes | - |
8.6 | title | string | Title of the item Listing | Yes | - |
8.7 | shippingMethodCode | string | The shipping method of the order | No | Allowable: STD (Standard) |
8.8 | orderItemPrice | object | Item price details | Yes | Opt: orderPrice, Rec: orderItemPrice |
8.8.1 | cashOnDeliveryCharges | number | COD charges | No | - |
8.8.2 | sellingPrice | number | Selling price of single item | Yes | - |
8.8.3 | shippingCharges | number | Total (cumulative) shipping charges of all unique items | No | - |
8.8.4 | discount | number | Total (cumulative) Discount amount of all unique items | No | - |
8.8.5 | totalPrice | number | Total price of single item | Yes | - |
8.8.6 | transferPrice | number | - | No | - |
8.8.7 | currency | string | Currency codes (3 digit) | No | Default: INR, Currency Codes |
8.9 | quantity | integer | Qty of the item ordered | Yes | Default: 1 |
8.10 | giftWrap | object | Gift wrap details | No | - |
8.10.1 | giftWrapMessage | string | No | ||
8.10.2 | giftWrapCharges | number | Extra charges for the wrap | No | - |
8.11 | onHold | boolean | true if order not available for processing | No | Default: false |
8.12 | packetNumber | integer | Packet number | No | Default: 1 |
8.13 | facilityCode | string | This is the code passed by the Marketplace corresponding to their internal Location ID, and we will create orders based on the Location ID Map put in the connectors by the seller for that Marketplace. Else Skip this parameter or pass Null | No | - |
9 | taxExempted | boolean | Tax Exemption on item | No | Fixed: false |
10 | cFormProvided | boolean | Pre-GST configuration | No | Fixed: false |
11 | thirdPartyShipping | boolean | true if the shipping to end customer is taken care by the Marketplace. false for self shipping | Yes | - |
12 | shippingAddress | object | Shipping address details | Yes | - |
12.1 | addressLine1 | string | Precise address of the customer | Yes | length must be between 0 and 100 |
12.2 | addressLine2 | string | Additional address information | No | length must be between 0 and 100 |
12.3 | city | string | City name | Yes | Eg: Surat |
12.4 | country | string | Country name | Yes | Eg: India |
12.5 | string | Email ID | No | case insensitive | |
12.6 | name | string | Name of receiver | Yes | - |
12.7 | phone | string | Contact no. | Yes | - |
12.8 | pincode | string | Area pincode (min. 6 digits) | Yes | Eg: 395006 |
12.9 | state | string | State name | Yes | Eg: Gujrat |
13 | billingAddress | object | Billing address details | Yes | - |
13.1 | addressLine1 | string | Precise address of the customer | Yes | length must be between 0 and 100 |
13.2 | addressLine2 | string | Additional address information | No | length must be between 0 and 100 |
13.3 | city | string | City name | Yes | Eg: Surat |
13.4 | country | string | Country name | Yes | Eg: India |
13.5 | string | Email ID | No | case insensitive | |
13.6 | name | string | Name of receiver | Yes | - |
13.7 | phone | string | Contact no. | Yes | - |
13.8 | pincode | string | Area pincode (min. 6 digits) | Yes | Eg: 395006 |
13.9 | state | string | State name | Yes | Eg: Gujrat |
14 | additionalInfo | string | Any additional information | No | - |
Response Payload
{
"status": "success",
"message": "Order created successfully",
"data": null
}
Response Payload Details
LEVEL | PARAMETER | TYPE | DESCRIPTION | MANDATORY | NOTES |
---|---|---|---|---|---|
1 | Status | string | Success after cancellation is acknowledged | Yes | success/failure |
2 | message | string | Response message | - | - |
3 | data | string | Null | - | - |
Error Codes
Refer Response Codes section to know about specific errors codes.
FAQs/Notes
Q1. If facilityCode is not passed by any Marketplace, what will happen in that case?
Ans. The facility will be allocated according to the Uniware facility allocation rules.
Q2. What will happen in the cases where such a “facilityCode” is passed by channel which is not available in the Location ID Mapping in the connectors?
Ans. In such cases, orders will not be created into the system, provided there is a mapping set by the seller already.
Q3. Will it affect any old integration?
Ans. This will not affect any of our existing integrations in any way, as previously their orders were processed using facility allocation rules and now also it’ll still work the same way. But in future if the marketplace wants to use this “facilityCode” based handling, we’ll have to update the merchant in our database.
Q4. Can billing addresses be fetched and updated via API as we are working on a bill to ship to a business model where the customer invoice raised has to be billed by the MP?
Ans. The billing address can be fetched using both Post Orders API and Get Orders API. But using MP integration we can’t update the same instead the updated address can only be re-fetched if needed.
Q5. There are two types of status fields in the response for this API, for order item and order item id, what is the difference between them?
Ans. There are two types of status mappings in UC, one for order as a whole and one for the order item id for the separate products in the order. For more details refer to the Status Definition header on Get Orders document.
Q6. By post order API, Can we (MP) pass discount values and shipping charges at item level?
Ans. As of now, you can not pass these values at item level as the system is not designed to handle this condition. Instead of this you can take “Get orders” api. or use the order level field with all cumulative values.
Q7. There are two types of charges as order level and order item level, what is the difference between them??
Ans. The charges and price details can be provided either at order level or order item level (charges which are common), but not in both. However, it is recommended to send price at order item level for better handling. Also, order item level charges (except sellingPrice
and totalPrice
) are cumulative or sum for all unique items.
Q8. What data will be passed in OrderID
& OrderItemID
in the response?
Ans. OrderID
& OrderItemID
These Id must be unique as UC will use these ids in consecutive apis. The API design should be kept in consideration with the possibility of these filters as it might be helpful during debugging of any issues as such.