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



API

FTP

Manual

XML

x

x



JSON

x





CSV



x

x



The 'On the fly' company code creation function

Once 'on the fly' company code creation is activated,  a new CompanyCode can be used in a sales order, which is automatically created as a new company record on SupplyStream. If you wish to use this, see the "Ship To" Company Codes section for more details. The diagram below also shows the systematic flow from using this method.


 'On the fly' company code creation using delivery address lookup

This uses the same method as the above diagram, but also incorporates delivery address lookup. This diagram shows the systematic flow used by incorporating the 'delivery address lookup' function of the Load Sales Orders service.
 



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

OnHold

Related to wholesale, retail environment; build and then send. Order is not sent for picking but available stock is assigned to the order. Release a Sales Order from hold from SEKO 360 or using the Load Release Sales Order from Hold service.

Boolean

true, false







NIFNumber

This will be populated by exception. It will hold a personal taxation code and is needed for shipping to some destinations. (potential rename of field)

nvarchar(100)









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
hh = 12-hour clock from 01 to 12
HH = 24-hour clock from 00 to 23



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

DocumentIdentifier

Used to identify different documents. This code is provided by SEKO.

nvarchar(100)









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.

Date in which the sales order should be dispatched. Appears on the pick note.

Datetime

API: YYYY-MM-dd e.g. 2013-12-12





ShipmentTerms

DDP, DDU & DAP are the options.





 

Conditional: When required for the carrier

Commercial Inv

CourierShopID

Code used during carrier allocation.

nvarchar(50)











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:

  • If the code is an existing code in SS, the company description supplied in the order will be ignored

  • If the code is new, the company description will be taken from the order, and stored on SS for all future orders that use this code.

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



LookupDeliveryAddress

Retrieves predefined address details saved under defined 'CompanyCode' (see section 3.8.4).

Boolean

true, false









DeliveryDetails













Field

Description

Data Type

Value Limits

Requirement

Use on standard documents

Field returned in service ID/table/field (multi services split by ";")

ContactCode

Placeholder

nvarchar(100)









Title

Title of the delivery contact i.e. Mrs, Mr, etc. If 'Title' included, DeliveryDetails→ FirstName or DeliveryDetails→ LastName required.

nvarchar(20)









FirstName

First name of the delivery contact

nvarchar(50)



Conditional: Required for some carriers.

Dispatch Note, Commercial Inv, Pick Note

12/Dispatch/ ShipToAttention

LastName

Last name of the delivery contact

nvarchar(50)



Conditional: Required for some carriers.

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)





Commercial Inv



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 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).
Appears on standard physical docs as full country name.

nvarchar(2)



Mandatory

Dispatch Note, Commercial Inv, Pick Note

12/Dispatch/ DeliveryAddressCountry

PhoneNumber

Phone number of the delivery contact
Used by some carriers to send customer SMS notifications

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
Used by some carriers to send customer email notifications



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 ";")

Title

Title of the billing contact i.e. Mrs, Mr.
If 'Title' included, BillingDetails→ FirstName or BillingDetails → LastName required.

nvarchar(20)









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)





Commercial Inv



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
Appears on physical docs as full country name (ISO-2 or ISO-3).

nvarchar(2)



Conditional: for commercial inv

Commercial Inv



PhoneNumber

Phone number of the billing contact

nvarchar(20)





Commercial Inv



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)









CustomsValue

This is a unit value, calculated by the client to show duties due.

If “SalesOrderLineItem.CustomsValue” is greater than zero then “SalesOrderLineItem.UnitPrice” is required.

decimal(18, 2)









Quantity

Quantity of the SKU to be dispatched in units

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 CustomsValue or VAT are populated

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.
(UnitPrice * Quantity) + (VAT * Quantity) = Amount
VAT is recalculated on short shipment.

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, CustomsValue or VAT are populated