UMG-UK
  1. Outbound Orders
UMG-UK
  • Outbound Orders
    • Get SalesOrder List
      GET
    • Create a SalesOrder
      POST
    • Get Sales Order Information
      GET
    • Sales Order Acknowledgement
      POST
    • Bulk Upload SalesOrders
      POST
    • Get Job Status of an Async Bulk Sales Order Import
      GET
    • Get a single SalesOrder
      GET
    • Update SalesOrder
      PUT
    • Cancel SalesOrder
      DELETE
    • Get Shipments for a Sales Order
      GET
    • Get B2B Customers For Business Unit
      GET
  • Ship Confirmation
    • Sales Order Ship Confirmation
      POST
  • Business Units
    • Get Buildings associated to a Business Unit
      GET
    • Remove associated Building from a Business Unit
      DELETE
    • Associate a Building to a Business Unit
      PUT
    • Get Business Unit Detail
      GET
    • Update Business Unit
      PUT
    • List Business Units
      GET
    • Create Business Unit
      POST
    • Get Business Unit General Settings
      GET
    • Update Business Unit General Settings
      PUT
    • Update Business Unit Amazon SFP Keys
      PUT
    • Remove Business Unit Amazon SFP Keys
      DELETE
    • Get Business Unit Amazon SFP Keys
      GET
    • List Broker Accounts
      GET
    • Create Broker Account
      POST
    • Delete Broker Account
      DELETE
  • Product
    • Batch Upload SKUs
    • Get Product Information
    • List SKUs
    • Create SKU
    • Get SKU Details
    • Update SKU Details
    • Update SKU Details
  • Inbound
    • List Inbound ASNs
    • Create Inbound ASN
    • Get single Inbound ASN
    • Update single Inbound ASN
    • Cancel single Inbound ASN
    • Get receipt lines for single Inbound ASN
    • Get receipt lines for single Inbound RMA
    • Get single Inbound RMA
    • Update single Inbound RMA
    • Cancel single Inbound RMA
    • List Inbound RMAs
    • Create Inbound RMA
    • Get receipt lines for single Inbound PO
    • Get single Inbound PO
    • Update single Inbound PO
    • Cancel single Inbound PO
    • List Inbound POs
    • Create Inbound PO
  • Inventory
    • List Inventory Transactions
    • List Inventory stats grouped by SKU
    • List Inventory stats grouped by Lot
    • List Inventory stats grouped by SKU and Building
    • List Inventory stats grouped by Lot and Building
    • List Inventory Serial Numbers
  • Inventory Movement
    • Inventory Movement
  • TMS Endpoints
    • Generate TMS Quotes for Sales Order
    • Book TMS Shipment for Sales Order
    • Delete Booked TMS Shipment For Sales Order
    • Update BOL for Order
    • Approve Quote for Order & Drop to WMS
    • Get ERP Token
  1. Outbound Orders

Bulk Upload SalesOrders

POST
/business_units/{businessUnitId}/sales_orders/bulk
Outbound Orders

Request

Path Params
businessUnitId
string 
required
Body Params application/json
data
array[object (SalesOrderRequest) {38}] 
optional
orderLines
array [object {10}] 
required
customerOrderNumber
string 
required
This is the customerOrderNumber in the SO file upload template
<= 30 characters
jobId
string 
optional
<= 20 characters
orderCreatedDate
string <date-time>
optional
This may be autogenerated by the system, or in the case of SFP it will be supplied to drive correct SLAs.
Is this redundant to the salesChannelInfo.purchaseDate? or how is it different to that date?
ISO 8601 format: yyyy-MM-dd
Match pattern:
([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))
requestedBuildingId
string 
optional
Warehouse Id
<= 5 characters
shipTo
object (Party) 
required
notes
string 
optional
<= 1000 characters
carrierId
enum<string> 
optional
The preferred carrier... e.g. UPS as small parcel, Regent as LTL, "BEST", etc.
<= 6 characters
Allowed values:
UPSUPGF
shippingSpeed
enum<string> 
optional
Q: What are the possible values for this? Is this different than what we mean by "Shipping Speed"? e.g. When we say "two-day"... it may still go ground.
Where would we see this in the read model? As a part of each shipment entity? Or each order line?
Is this actual shipping speed or just what Softeon recommended?
<= 3 characters
Allowed values:
1D2D5A5D
deliveryInstructions1
string 
optional
<= 50 characters
deliveryInstructions2
string 
optional
<= 50 characters
buyerOrderNumber
string 
optional
Used for B2B/retail compliance. It seems this would be used when shipping to someone like Macy's where they may have their own PO number they want to see on the shipment(s).
<= 30 characters
fulfillFlag
boolean 
optional
If false would mean do not drop to WMS and would constrain status.
Default:
true
fillKillIndicator
enum<string> 
optional
Possible values:
1 - Fill Always
2 - Full Order/Short Shipment Kill
3 - Absolute Kill
5 - Kill Except New Release
6 - Ship Complete/Fill
7 - Ship Once
8 - Ship Complete/Cancel
9 - Ship Complete
Note: this behaves as a per-order override of the BU level setting
<= 2 characters
Allowed values:
12356789
customerOrderType
enum<string> 
required
Possible values:
HL - Hold
K - Kit Orders
PRI - EcommerceSFP
E - Ecommerce
SO - B2B or retail compliance - not using in early phases
<= 3 characters
Allowed values:
HLKEPRI
billTo
object (Party) 
optional
giftMessage
string 
optional
orderAmount
number 
optional
This is the total retail price that was charged to the customer for the order. Should contain positive and zero values only.
isSignatureRequired
boolean 
optional
Order level override
isInsuranceRequired
boolean 
optional
Order level override
orderDropDate
string <date>
optional
This date informs of when the order got dropped to OMS - can only be a date in the future. Will either drop immediately or,
date in future to control when it goes to WMS (do not fulfill until some future date or now)
ISO 8601 format: yyyy-MM-dd
Match pattern:
([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))
customerDates
object 
optional
Do these nested dates map to date field with the same name in the Sales Order upload interface XLS?
salesChannelOrderInfo
object 
optional
This object will be used for SFP orders. Do these nested dates map to date field with the same name in the Sales Order upload interface XLS?
customerId
string 
optional
This will be mandatory for retail compliance - if provide this field, may have a stored address thus the shipTo address would NOT be required since it should already be known by the system
<= 10 characters
priority
enum<string> 
optional
Mandatory for retail compliance
Possible Values:
1 - HIGHEST
5 - HIGHER
10 - HIGH
14 - CARRIER DOWNGRADE
15 - STANDARD
20 - LOW
25 - LOWER
30 - LOWEST
<= 4 characters
Allowed values:
15101415202530
shipServiceLevel
enum<string> 
optional
'extra level of specificity for shipping. Mandatory for LTL and must specify "G"'
G - LTL ground
01 - UPS Next Day air
02 - UPS 2nd Day air
03 - UPS ground
11 - UPS Standard
12 - UPS 3 Day Select
13 - UPS Next Day Air Saver
14 - UPS Next Day Air (noon)
65 - UPS Saver
93 - SurePost
<= 30 characters
Allowed values:
G010203111213146593
purchaseOrderNumber
string 
optional
Mandatory for B2B & retail compliance
<= 30 characters
accessorials
array[object (Accessorial) {3}] 
optional
thirdPartyAccountNumber
string 
optional
Use this carrier billing account number for shipping. If this value is set, then any value in useAccountFrom will be ignored.
useAccountFrom
enum<string> 
optional
Use the specified stored carrier billing account number for shipping.
B - Business Unit (default)
C - Customer (requires customerId to be set)
Allowed values:
CB
mondialRelayId
string 
optional
<= 50 characters
shippingCost
number 
optional
bundleFlag
string 
optional
<= 1 characters
currencyCd
string 
optional
Currency Code
<= 10 characters
storeid
string 
required
Store ID
<= 100 characters
taxAmt
number 
optional
Order Level Tax
orderLines \ lineTaxAmt
number 
required
Line Level Tax
cartonCode
string 
required
Carton Code
<= 30 characters
Example
{
    "data": [
        {
            "orderLines": [
                {
                    "skuId": "string",
                    "quantity": 0,
                    "quantityMeasure": "EA",
                    "customerLineNumber": "string",
                    "customerSku": "string",
                    "giftMessage": "string",
                    "notes": "string",
                    "lineType": "S",
                    "amount": 0,
                    "giftCardInfo": {
                        "amount": 0,
                        "code": "string",
                        "detail": "string",
                        "type": "string"
                    }
                }
            ],
            "customerOrderNumber": "string",
            "jobId": "string",
            "orderCreatedDate": "2019-08-24T14:15:22Z",
            "requestedBuildingId": "strin",
            "shipTo": {
                "name": "string",
                "address1": "string",
                "address2": "string",
                "address3": "string",
                "city": "string",
                "state": "strin",
                "country": "strin",
                "postalCode": "string",
                "email": "foo@bar.com,fish@sea.net",
                "phoneNumber": "string",
                "faxNumber": "string",
                "attentionTo": "string"
            },
            "notes": "string",
            "carrierId": "UPS",
            "shippingSpeed": "1D",
            "deliveryInstructions1": "string",
            "deliveryInstructions2": "string",
            "buyerOrderNumber": "string",
            "fulfillFlag": true,
            "fillKillIndicator": "1",
            "customerOrderType": "HL",
            "billTo": {
                "name": "string",
                "address1": "string",
                "address2": "string",
                "address3": "string",
                "city": "string",
                "state": "strin",
                "country": "strin",
                "postalCode": "string",
                "email": "foo@bar.com,fish@sea.net",
                "phoneNumber": "string",
                "faxNumber": "string",
                "attentionTo": "string"
            },
            "giftMessage": "string",
            "orderAmount": 0,
            "isSignatureRequired": true,
            "isInsuranceRequired": true,
            "orderDropDate": "2019-08-24",
            "customerDates": {
                "requestedDeliveryDate": "2019-08-24",
                "requestedShipDate": "2019-08-24",
                "deliveryStartDate": "2019-08-24",
                "deliveryEndDate": "2019-08-24",
                "doNotShipBefore": "2019-08-24",
                "doNotShipAfter": "2019-08-24",
                "cancelAfter": "2019-08-24",
                "cancelIfNotDeliveredBy": "2019-08-24"
            },
            "salesChannelOrderInfo": {
                "salesChannelName": "string",
                "orderNumber": "string",
                "purchaseDate": "2019-08-24",
                "lastUpdateDate": "2019-08-24",
                "shipServiceLevel": "G",
                "earliestShipDate": "2019-08-24",
                "latestShipDate": "2019-08-24",
                "earliestDeliveryDate": "2019-08-24",
                "latestDeliveryDate": "2019-08-24"
            },
            "customerId": "string",
            "priority": "1",
            "shipServiceLevel": "G",
            "purchaseOrderNumber": "string",
            "accessorials": [
                {
                    "code": "Residential/RESIDNTL",
                    "accessorialType": "Pickup",
                    "parameters": [
                        {
                            "name": "accessType",
                            "value": "string"
                        }
                    ]
                }
            ],
            "thirdPartyAccountNumber": "string",
            "useAccountFrom": "C",
            "mondialRelayId": "string",
            "shippingCost": 0,
            "bundleFlag": "s",
            "currencyCd": "string",
            "storeid": "string",
            "taxAmt": 0,
            "orderLines \\ lineTaxAmt": 0,
            "cartonCode": "string"
        }
    ]
}

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST '/business_units//sales_orders/bulk' \
--header 'Content-Type: application/json' \
--data-raw '{
    "data": [
        {
            "orderLines": [
                {
                    "skuId": "string",
                    "quantity": 0,
                    "quantityMeasure": "EA",
                    "customerLineNumber": "string",
                    "customerSku": "string",
                    "giftMessage": "string",
                    "notes": "string",
                    "lineType": "S",
                    "amount": 0,
                    "giftCardInfo": {
                        "amount": 0,
                        "code": "string",
                        "detail": "string",
                        "type": "string"
                    }
                }
            ],
            "customerOrderNumber": "string",
            "jobId": "string",
            "orderCreatedDate": "2019-08-24T14:15:22Z",
            "requestedBuildingId": "strin",
            "shipTo": {
                "name": "string",
                "address1": "string",
                "address2": "string",
                "address3": "string",
                "city": "string",
                "state": "strin",
                "country": "strin",
                "postalCode": "string",
                "email": "foo@bar.com,fish@sea.net",
                "phoneNumber": "string",
                "faxNumber": "string",
                "attentionTo": "string"
            },
            "notes": "string",
            "carrierId": "UPS",
            "shippingSpeed": "1D",
            "deliveryInstructions1": "string",
            "deliveryInstructions2": "string",
            "buyerOrderNumber": "string",
            "fulfillFlag": true,
            "fillKillIndicator": "1",
            "customerOrderType": "HL",
            "billTo": {
                "name": "string",
                "address1": "string",
                "address2": "string",
                "address3": "string",
                "city": "string",
                "state": "strin",
                "country": "strin",
                "postalCode": "string",
                "email": "foo@bar.com,fish@sea.net",
                "phoneNumber": "string",
                "faxNumber": "string",
                "attentionTo": "string"
            },
            "giftMessage": "string",
            "orderAmount": 0,
            "isSignatureRequired": true,
            "isInsuranceRequired": true,
            "orderDropDate": "2019-08-24",
            "customerDates": {
                "requestedDeliveryDate": "2019-08-24",
                "requestedShipDate": "2019-08-24",
                "deliveryStartDate": "2019-08-24",
                "deliveryEndDate": "2019-08-24",
                "doNotShipBefore": "2019-08-24",
                "doNotShipAfter": "2019-08-24",
                "cancelAfter": "2019-08-24",
                "cancelIfNotDeliveredBy": "2019-08-24"
            },
            "salesChannelOrderInfo": {
                "salesChannelName": "string",
                "orderNumber": "string",
                "purchaseDate": "2019-08-24",
                "lastUpdateDate": "2019-08-24",
                "shipServiceLevel": "G",
                "earliestShipDate": "2019-08-24",
                "latestShipDate": "2019-08-24",
                "earliestDeliveryDate": "2019-08-24",
                "latestDeliveryDate": "2019-08-24"
            },
            "customerId": "string",
            "priority": "1",
            "shipServiceLevel": "G",
            "purchaseOrderNumber": "string",
            "accessorials": [
                {
                    "code": "Residential/RESIDNTL",
                    "accessorialType": "Pickup",
                    "parameters": [
                        {
                            "name": "accessType",
                            "value": "string"
                        }
                    ]
                }
            ],
            "thirdPartyAccountNumber": "string",
            "useAccountFrom": "C",
            "mondialRelayId": "string",
            "shippingCost": 0,
            "bundleFlag": "s",
            "currencyCd": "string",
            "storeid": "string",
            "taxAmt": 0,
            "orderLines \\ lineTaxAmt": 0,
            "cartonCode": "string"
        }
    ]
}'

Responses

🟢200Returns the initial async job state so that it can be polled for status
application/json
Body
data
object (SalesOrderCreateAsyncJob) 
optional
A job that represents the state of a bulk import of sales orders.
jobId
string 
required
status
enum<string> 
required
The initial response that returns the jobId for polling will be in the CREATED status.
Status will be PROCESSING as the batch of items are imported.
COMPLETED means the entire batch has been processed whether or not there were failures. If there were any failures, that should be reflected by adding them to the failedItems array.
Allowed values:
CREATEDINITIATEDPROCESSINGCOMPLETED
failedOrders
array [object {3}] 
required
This will be populated with any SalesOrders that failed to import upon completion. The item field on a failed item will contain the original request. If all imports were sucessful, this array will be empty.
progress
object 
optional
This would be nice to have when possible, but we're interested to know the level of effort.
Example
{
    "data": {
        "jobId": "string",
        "status": "CREATED",
        "failedOrders": [
            {
                "customerOrderNumber": "string",
                "message": "string",
                "lines": [
                    {
                        "customerLineNumber": "string",
                        "message": "string"
                    }
                ]
            }
        ],
        "progress": {
            "processed": 0,
            "total": 0
        }
    }
}
🟠400Bad Request
🟠404Not Found
🔴500Internal Server Error
Modified at 2024-07-02 10:16:06
Previous
Sales Order Acknowledgement
Next
Get Job Status of an Async Bulk Sales Order Import
Built with