Load Sales Orders
Description |
This method can be called to create new sales orders in SupplyStream. The products within the order must have sufficient available stock for the order to be created if "PushToDC" is set to true. |
System behaviours
- The Sales Order is defined by the SalesOrderNumber (Identifier)
- If one Line Item in the sales order returns an error (for example, 'Error Submitting SalesOrder: TESTSO - Error. Product 5963405 has no free stock.'), then the entire sales order fails to upload.
- The address is not validated on upload.
- The sales order cannot be edited once uploaded.
- In a CSV, if a sales order number is used, and then repeated later on in the file (separated by another sales order), these entities will be treated as separate sales orders.
- A single Sales Order (defined by the Sales Order number) does not accept multiple lines of the same ProductCode.
- Anything that comes through as a SalesOrderLineItem will need inventory and we will need to fully process as a pick.
- Once a Sales Order is at status Dispatched, the Sales Order is closed. No further dispatches will be sent for this sales order.
- If there is not enough or no stock for a SKU on an order, the order will be rejected. The sales order would either need to be uploaded again once the stock is present, the out of stock SKU's removed (or quantity reduced), or the order cancelled on the client system.
- In a CSV file, if you have a multi line order, the details of the order (address, SO number, etc.), must be included on every row.
- A web contact consists of DeliveryAddress: First Name, Last Name, Email Address, Phone Number.
Available formats
Entity Relationships
This diagram shows the high level relationship between the entities detailed in the Field Level Details section of this page.
Field level details
SalesOrder | ||||||
Field | Description | Data Type | Value Limits | Requirement | Use on standard documents | Field returned in service ID/table/field (multi services split by ";") |
SalesOrderNumber | Sales Order Number. Must be unique. | nvarchar(50) | Must be unique. | Mandatory | Dispatch Note, Commercial Inv | 12/Dispatch/SalesOrderNumber |
SalesOrderReference | Open reference field | nvarchar(50) | Dispatch Note, Commercial Inv | 12/Dispatch/SalesOrderReference | ||
CourierName | Courier the goods should be dispatched on. CourierName accepted values supplied by SEKO. | Nvarchar(100) | Values provided by SEKO | If required by DC | ||
CourierService | Courier service the goods should be dispatched on. CourierService accepted values supplied by SEKO. | Nvarchar(100) | Values provided by SEKO | If required by DC | ||
Notes | Open notes field that appears on the standard outbound documentation | nvarchar(4000) | Dispatch Note, Commercial Inv | |||
SpecialInstructions | A note to the DC. (Not seen if wave picking is used). | nvarchar(4000) | ||||
SalesOrderDate | The date as appears on the outbound documentation. If left blank, the date in which the sales order was created will be used. Other CSV date format options available at request. | Datetime | API: YYYY-MM-dd e.g. 2013-12-12 yyyyMMdd HHmmss | Dispatch Note, Commercial Inv | ||
OrderType | We exclude the following order types from Wave Picking: Retail, Wholesale, WorkOrder. Typically we use Retail or Wholesale to manage trade. Work Order is for managing internal builds etc, in the DC. If the Web order type is used, this is the same as using the Load Web Sales Orders service. | nvarchar(100) | Standard, Web, Retail, Wholesale, WorkOrder | Mandatory | ||
SalesInvoiceNumber | Sales Invoice number | nvarchar(100) | 12/Dispatch/ SalesInvoiceNumber | |||
NotificationMethod | Method in which the customer wishes to be contacted by the carrier (if applicable - typically controlled within the carrier portal): email = Email Notification SMS = Text / SMS Notification | Nvarchar(50) | SMS,EMAIL | |||
GiftMessage | The message to the person the gift is being sent to. Pick Note will specify "Yes" if a Gift Message is present. | nvarchar(500) | ||||
GiftMessageFrom | The person the gift is from. The new field can be populated as required, including personalised names i.e. “Mum”. If first name and last name is required, the entire name should be populated within this field. | nvarchar(100) | ||||
GiftMessageTo | The person who the gift is being sent to. The new field can be populated as required, including personalised names i.e. “Dad”. It also allows the user to specify the “To” when the gift message is for someone else who lives at the same address as the delivery recipient. If first name and last name is required, the entire name should be populated within this field. | nvarchar(100) | ||||
ScheduledShipDate | Date in which the sales order should be dispatched. Only to be used with trade orders. | Datetime | API: YYYY-MM-dd e.g. 2013-12-12 | |||
ShipmentTerms | DDP, DDU & DAP are the options. | nvarchar(100) | Conditional: When required for the carrier | Commercial Inv |
ShipToCompany | ||||||
Field | Description | Data Type | Value Limits | Requirement | Use on standard documents | Field returned in service ID/table/field (multi services split by ";") |
CompanyCode | Unique ship to code that can be used to retrieve company details. With "On the fly company creation" turned on:
| nvarchar(100) | Mandatory | |||
CompanyDescription | The name of the company delivering to. See section "The 'On the fly' company code creation function" on this page for more details on using this. | nvarchar(200) | Mandatory | Dispatch Note, Commercial Inv |
DeliveryDetails | ||||||
Field | Description | Data Type | Value Limits | Requirement | Use on standard documents | Field returned in service ID/table/field (multi services split by ";") |
FirstName | First name of the delivery contact. If provided, this value will take presidence over the CompanyDescription on some carriers address labelling, such as Hermes. | nvarchar(50) | Dispatch Note, Commercial Inv, Pick Note | 12/Dispatch/ ShipToAttention | ||
LastName | Last name of the delivery contact | nvarchar(50) | Dispatch Note, Commercial Inv, Pick Note | 12/Dispatch/ ShipToAttention | ||
Line1 | Line 1 of the delivery contacts address | nvarchar(100) | Mandatory | Dispatch Note, Commercial Inv, Pick Note | 12/Dispatch/ DeliveryAddressLine1 | |
Line2 | Line 2 of the delivery contacts address | nvarchar(100) | Dispatch Note, Commercial Inv | 12/Dispatch/ DeliveryAddressLine2 | ||
Line3 | Line 3 of the delivery contacts address | nvarchar(100) | Commercial Inv | 12/Dispatch/ DeliveryAddressLine3 | ||
Line4 | Placeholder | nvarchar(100) | ||||
City | City of the delivery contacts address | nvarchar(50) | Mandatory | Dispatch Note, Commercial Inv, Pick Note | 12/Dispatch/ DeliveryAddressCity | |
County | County of the delivery contacts address | nvarchar(50) | Mandatory | Commercial Inv, Pick Note | 12/Dispatch/ DeliveryAddressCounty | |
PostcodeZip | Postcode of the delivery contacts address. Postcode is not validated by the SEKO system | nvarchar(20) | Mandatory | Dispatch Note, Commercial Inv, Pick Note | 12/Dispatch/ DeliveryAddressPostCode | |
CountryCode | Country of the delivery contacts address (ISO-2 or ISO-3). | nvarchar(2) | Mandatory | Dispatch Note, Commercial Inv, Pick Note | 12/Dispatch/ DeliveryAddressCountry | |
PhoneNumber | Phone number of the delivery contact The phone Number will be saved at company level, rather than contact level, unless a first name/last name is provided. For the Phone Number to be visible on the Commercial Inv, this would need to be contact level. | nvarchar(20) | Conditional: required by some carriers FIrstName or LastName required. | Commercial Inv | 12/Dispatch/ DeliveryPhoneNumber | |
EmailAddress | Email address of the delivery contact The Email Address will be saved at company level, rather than contact level, unless a first name/last name is provided. For the Email Address to be visible on SS, this would need to be contact level. | nvarchar(150) | Conditional: required by some carriers FIrstName or LastName required. | 12/Dispatch/ DeliveryEmailAddress |
BillingDetails | ||||||
Field | Description | Data Type | Value Limits | Requirement | Use on standard documents | Field returned in service ID/table/field (multi services split by ";") |
FirstName | First name of the billing contact. | nvarchar(50) | Conditional: If billing address Line1 is provided and for commercial inv | Commercial Inv | ||
LastName | Last name of the billing contact | nvarchar(50) | Commercial Inv | |||
Line1 | Line 1 of the billing contacts address | nvarchar(100) | Conditional: for commercial inv | Commercial Inv | ||
Line2 | Line 2 of the billing contacts address | nvarchar(100) | Commercial Inv | |||
Line3 | Line 3 of the billing contacts address | nvarchar(100) | Commercial Inv | |||
Line4 | Line 4 of the billing contacts address | nvarchar(100) | ||||
City | City of the billing contacts address | nvarchar(50) | Conditional: for commercial inv | Commercial Inv | ||
County | County of the billing contacts address | nvarchar(50) | Commercial Inv | |||
PostcodeZip | Postcode of the billing contacts address | nvarchar(20) | Conditional: for commercial inv | Commercial Inv | ||
CountryCode | Country of the billing contacts address | nvarchar(2) | Conditional: for commercial inv | Commercial Inv | ||
PhoneNumber | Phone number of the billing contact | nvarchar(20) | ||||
EmailAddress | Email address of the billing contact | nvarchar(150) |
SalesOrderHeader | ||||||
Field | Description | Data Type | Value Limits | Requirement | Use on standard documents | Field returned in service ID/table/field (multi services split by ";") |
DCCode | SEKO created code that uniquely identifies the DC from other SEKO DC's. This code is supplied by SEKO. | Nvarchar(100) | Conditional: If more than one DC in use | 12/Dispatch/ DCCode |
SalesOrderLineItem | ||||||
Field | Description | Data Type | Value Limits | Requirement | Use on standard documents | Field returned in service ID/table/field (multi services split by ";") |
LineNumber | Integer that uniquely identifies a line of an order. Must be more than 0. Character length restriction on the Line Number is 8 . The SupplyStream system will order the line items by ascending LineNumber. For CSV, can be auto incremented if this cannot be provided, which will increment each sales order starting from 1. | Int | Mandatory | 12/DispatchLineItem/LineNumber | ||
ProductCode | SKU to be dispatched. Must be unique per sales order. There must be available stock on the SKU. | nvarchar(100) | Mandatory | Dispatch Note, Commercial Inv | 12/DispatchLineItem/ProductCode | |
OrderLineMessage | Message assigned to the SKU on line level. Used for purposes such as engraving, where the engrave message would appear in this field. If the clients populate the "Order Line Message" , then this order will be a non standard requirement | nvarchar(250) | ||||
Quantity | Quantity of the SKU to be dispatched in units. Line Item Quantity needs to be greater than zero. Unit quantity should match the inbound quantity (per EACH) | Int | Mandatory | |||
UnitPrice | The price of the unit (per unit) i.e. 4.99. Ex VAT if VAT field is provided in separate VAT field. Unit price should not be 0 if required by carrier or Commercial Invoice required. Unit Price is recalculated on short shipment. | decimal(18, 2) | Conditional: if required for shipping If VAT ispopulated | Commercial Inv | ||
VAT | The VAT of the unit (per unit) i.e. 0.67. This is added together to the Unit Price * Quantity value in the "Amount" column on the standard commercial invoice. As a note, if supplying VAT irrespective of DDU/DDP, the unit value must be NET not GROSS. If “SalesOrderLineItem.Vat” is greater than zero then “SalesOrderLineItem.UnitPrice” is required | decimal(18, 2) | Conditional: When required for the carrier | |||
CurrencyCode | The currency code of the unit price etc. (ISO-3). Use the same code for the entire order. | nchar(3) | Conditional: if UnitPrice or VAT are populated | Commercial Inv |