PlaceOrder
Description
This method is used to place an order. We will sent again the complete order given from the last CalculateOrder result including billing and shipping address information.
SOAP API:
Action
http://shoxl.com/ShoxlService/PlaceOrder
Please note: this is not a working url, but a combination of namespace and method. Do not expect the url to return a result.
Style
Document
Input (Literal)
The input of this method is the document element tns:PlaceOrder having the structure defined by the following table.
Element
Type
Occurs
Description
Sequence
1..1
request
tns:PlaceOrderRequest
0..1
Complex Type: tns:PlaceOrderRequest
The PlaceOrderRequest contains all the information to place an order into the ERP system.
Component
Type
Occurs
Description
Sequence
1..1
AccountNumber
s:string
1..1
This is the (project) account number of the customer.
Order
tns:Order
1..1
The Order, the ComplexType Order contains all the order details. For the complete description check the Order section in the documentation.
Complex Type: tns:Order
The Order contains all the information to place an order in the ERP system but also to show on the website when we are showing order history.
Component
Type
Occurs
Description
Sequence
1..1
BillingAddressLine1
s:string
0..1
Street and housenumber of the billing address. Field is filled when BillingStreetAddressType is set to combined.
BillingStreet
s:string
0..1
Street of the billing address. Field is filled when BillingStreetAddressType is set to separated.
BillingHouseNumber
s:string
0..1
House number of the billing address. Field is filled when BillingStreetAddressType is set to separated.
BillingHouseNumberAddition
s:string
0..1
House number addition of the billing address. Field is filled when BillingStreetAddressType is set to separated.
BillingAddressLine2
s:string
0..1
Additional address line of the billing address
BillingStreetAddressType
s:int
1..1
StreetAddressType: 1 = combined, 2 = separated. Combined means that BillingAddressLine1 will be filled, Separated means that BillingStreet, BillingHouseNumber and BillingHouseNumberAddition will be filled.
BillingCity
s:string
0..1
The city of the billing address
BillingCountry
s:string
0..1
The country of the billing address
BillingName1
s:string
0..1
Name of the billing address (department)
BillingName2
s:string
0..1
Contains the company name
BillingPostalCode
s:string
0..1
The postalcode of the billing address
BillingExternalId
s:string
0..1
The external Id of the billing address
ExternalOrderNumber
s:string
0..1
This the Shoxl Shop unique order number
OrderDate
s:dateTime
0..1
The order date
OrderState
s:int
0..1
Orderstate: 1 = open, 2 = closed. State should be derived form orderlinestates: 1 means 1 or more lines have state open or backorder, 2 means all lines have status shipped or cancelled.
OrderLines
tns:ArrayOfOrderLine
0..1
A list of OrderLines. For the complete description check the ComplexType OrderLine section in the documentation.
PaymentMethodCode
s:int
0..1
The used payment method code, 1 = on account, 2 = PSP, 4 = zero order.
PaymentReference
s:string
0..1
When using a Payment Service Provider (PSP) a reference is given from the PSP system (not yet implemented)
Reference
s:string
0..1
This is the customers reference for an order.
ShipmentMethodCode
s:int
1..1
A Shipment Method Code: 0 = pickup by customer, 1 = default delivery
ShippingAddressLine1
s:string
0..1
Street and housenumber of the shipping address. Field is filled when ShippingStreetAddressType is set to combined.
ShippingStreet
s:string
0..1
Street of the shipping address. Field is filled when ShippingStreetAddressType is set to separated.
ShippingHouseNumber
s:string
0..1
House number of the shipping address. Field is filled when ShippingStreetAddressType is set to separated.
ShippingHouseNumberAddition
s:string
0..1
House number addition of the shipping address. Field is filled when ShippingStreetAddressType is set to separated.
ShippingAddressLine2
s:string
0..1
Additional address line of the shipping address
ShippingStreetAddressType
s:int
1..1
StreetAddressType: 1 = combined, 2 = separated. Combined means that ShippingAddressLine1 will be filled, Separated means that ShippingStreet, ShippingHouseNumber and ShippingHouseNumberAddition will be filled.
ShippingCity
s:string
0..1
The city of the shipping address
ShippingCountry
s:string
0..1
The country of the shipping address
ShippingName1
s:string
0..1
Name of the shipping address (department)
ShippingName2
s:string
0..1
Contains the company name
ShippingPostalCode
s:string
0..1
The postalcode of the shipping address
ShippingExternalId
s:string
0..1
The external Id of the shipping address
ShippingTransportInstruction
s:string
0..1
Transport and delivery instruction for the shipping address
TotalPriceExclVat
s:decimal
1..1
The total price of the order excluding VAT
TotalPriceInclVat
s:decimal
1..1
The total price of the order including VAT
TotalVat
s:decimal
1..1
The total amount of VAT
Component
Type
Occurs
Description
OrderedBy
s:string
0..1
The Email address of the customer who ordered.
Complex Type: tns:ArrayOfOrderLine
Component
Type
Occurs
Description
Sequence
1..1
OrderLine
tns:OrderLine
0..*
Complex Type: tns:OrderLine
A order line contains all the information of an ordered product. In case of order history it can also contain a order line status code and track and trace information.
Component
Type
Occurs
Description
Sequence
1..1
Carrier
s:string
0..1
The description of the Carrier who ships the order
DiscountAmountExclVat
s:decimal
0..1
This field can be used to give the calculated Discount Amount using a discount percentage. Or just give a discount amount when no discount percentage is used for the calculation.
DiscountDescription
s:string
0..1
A description of the discount from the ERP.
DiscountPercentage
s:decimal
0..1
A percentage of the give discount on the default netto price excluding VAT. When this field is set, the field DiscountAmountExclVat is required.
IsExternal
s:Boolean
1..1
If the order line is added by the ERP system (for example when its an extra fee or shipping costs), this field must be set true. If Shoxl Shop adds an order line this field is set false.
GrossPriceExclVat
s:decimal
1..1
The gross price excluding vat
NettoPriceExclVat
s:decimal
1..1
The netto price excluding vat, this can be a customer-specific or even project-specific price.
OrderLineStatus
s:int
0..1
The status of the order line, 0 = open, 1 = backorder, 2 = shipped, 3 = cancelled
ProductDescription
s:string
1..1
The default description of the product
ProductNumber
s:string
0..1
The product number for the requested product details, this can be a customer-specific product number. If IsExternal=false, the ordernumber must be filled.
Quantity
s:int
1..1
The number of items ordered
RemainingQuantity
s:int
1..1
The number of items not yet shipped.
SubTotalPriceExclVat
s:decimal
1..1
Sub Total of the order line excluding Vat
TrackAndTraceReference
s:string
0..1
If available, a track and trace reference of the carrier. This can be an unique code or a uri.
VatCode
s:int
1..1
The VAT Code of the product, 1 = HIGH (21%), 2 = LOW (9%), 3 = ZERO (0%). This
VAT code must be set by the ERP taking into account that this VAT code can be overruled by the customer settings, for example foreign customers use ZERO as a VAT code, in this case the ERP will return 3 to Shoxl Shop.
NettoPriceInclVat
s:decimal
1..1
The netto price including vat, this can be a customer-specific or even project-specific price.
SubTotalPriceInclVat
s:decimal
1..1
Sub Total of the order line including Vat
BaseUnit
s:string
0..1
The base unit of the product, eg pce or meter.
PriceUnit
s:decimal
0..1
The quantity on which price is based
Output (Literal)
The output of this method is the document element tns:PlaceOrderResponse having the structure defined by the following table.
Element
Type
Occurs
Description
Sequence
1..1
PlaceOrderResult
tns:PlaceOrderResult
0..1
Complex Type: tns:PlaceOrderResult
The PlaceOrderResult contains the confirmation that an order was placed succesful in the ERP system.
Component
Type
Occurs
Description
Sequence
1..1
ErrorCode
s:string
0..1
An error code returned by the ERP system
ErrorDescription
s:string
0..1
The error description related to the error code returned by the ERP system
OrderNumber
s:string
0..1
The ordernumber created by the ERP system
OrderSuccessful
s:boolean
1..1
Set true if the order was set succesful. Otherwise set false but also set an ErrorCode and Description.
REST API:
URL: /Shoxl/v1/PlaceOrder Method: POST
Changes in ShoxlRestApiSwagger_v8
The vatCode field on OrderLine is replaced by a new taxPercentage field
Changes in ShoxlRestApiSwagger_v12
Added BillingFirstName, BillingMiddleName and BillingLastName fields
Changed description of BillingName1 field
Added ShippingFirstName, ShippingMiddleName and ShippingLastName fields
Changed description of ShippingName1 field
Added EmailAddress, PhoneNumber and MobilePhoneNumber fields
Added ShippingEmailAddress and ShippingPhoneNumber
Changes in ShoxlRestApiSwagger_v16
A new field "context" is introduced in the request body. When configured this object contains key value pairs (e.g. divisionCode).
Request body:
PlaceOrderRequest{
parameter
type
accountNumber
string required
order
Order
required
context
object
}
Order{
billingAddressLine1
string nullable: true
Street and housenumber of the billing address. Field is filled when BillingStreetAddressType is set to combined.
billingStreet
string nullable: true
Street of the billing address. Field is filled when BillingStreetAddressType is set to separated.
billingHouseNumber
string nullable: true
House number of the billing address. Field is filled when BillingStreetAddressType is set to separated.
billingHouseNumberAddition
string nullable: true
House number addition of the billing address. Field is filled when BillingStreetAddressType is set to separated.
billingAddressLine2
string nullable: true
Additional address line of the billing address
billingStreetAddressType
integer($int32)
StreetAddressType: 1 = combined, 2 = separated. Combined means that BillingAddressLine1 will be filled, Separated means that BillingStreet, BillingHouseNumber and BillingHouseNumberAddition will be filled.
billingCity
string nullable: true
The city of the billing address
billingCountry
string nullable: true
The country of the billing address
billingName1
string nullable: true
Full name of billing contact person
billingName2
string nullable: true
Contains the company name
billingFirstName
string nullable: true
First name of billing contact person
billingMiddleName
string nullable: true
Middle name of billing contact person
billingLastName
string nullable: true
Last name of billing contact person
billingPostalCode
string nullable: true
The postalcode of the billing address
emailAddress
string nullable: true
Email address of the customer that placed the order
phoneNumber
string nullable: true
Phone number of the customer that placed the order
mobilePhoneNumber
string nullable: true
Mobile phone number of the customer that placed the order
externalOrderNumber
string nullable: true
This the Shoxl Shop unique order number
orderDate
string($date-time)
nullable: true
The order date
orderLines
[OrderLine]
A list of OrderLines. For the complete description check the ComplexType OrderLine section in the documentation.
orderState
integer($int32) nullable: true
Orderstate: 1 = open, 2 = closed. State should be derived form orderlinestates: 1 means 1 or more lines have state open or backorder, 2 means all lines have status shipped or cancelled.
orderedBy
string nullable: true
The Email address of the customer who ordered.
paymentMethodCode
integer($int32)
nullable: true
The used payment method code, 1 = on account, 2 = PSP, 4 = zero order.
paymentReference
string nullable: true
When using a Payment Service Provider (PSP) a reference is given from the PSP system (not yet implemented)
preferredDeliveryDate
string($date-time)
nullable: true
reference
string nullable: true
This is the customers reference for an order.
shipmentMethodCode
integer($int32)
A Shipment Method Code: 0 = pickup by customer, 1 = default delivery
shippingAddressLine1
string nullable: true
Street and housenumber of the shipping address. Field is filled when ShippingStreetAddressType is set to combined.
shippingStreet
string nullable: true
Street of the shipping address. Field is filled when ShippingStreetAddressType is set to separated.
shippingHouseNumber
string nullable: true
House number of the shipping address. Field is filled when ShippingStreetAddressType is set to separated.
shippingHouseNumberAddition
string nullable: true
House number addition of the shipping address. Field is filled when ShippingStreetAddressType is set to separated.
shippingAddressLine2
string nullable: true
Additional address line of the shipping address
shippingStreetAddressType
integer($int32)
StreetAddressType: 1 = combined, 2 = separated. Combined means that ShippingAddressLine1 will be filled, Separated means that ShippingStreet, ShippingHouseNumber and ShippingHouseNumberAddition will be filled.
shippingCity
string nullable: true
The city of the shipping address
shippingCountry
string nullable: true
The country of the shipping address
shippingName1
string nullable: true
Full name of shipping contact person
shippingName2
string nullable: true
Contains the company name
shippingFirstName
string nullable: true
First name of shipping contact person
shippingMiddleName
string nullable: true
Middle name of shipping contact person
shippingLastName
string nullable: true
Last name of shipping contact person
shippingPostalCode
string nullable: true
The postalcode of the shipping address
shippingTransportInstruction
string nullable: true
Transport and delivery instruction for the shipping address
shippingEmailAddress
string nullable: true
Email address of shipping contact person
shippingPhoneNumber
string nullable: true
Phone number of shipping contact person
totalPriceExclVat
number($double)
The total price of the order excluding VAT
totalPriceInclVat
number($double)
The total price of the order including VAT
totalVat
number($double)
The total amount of VAT
}
OrderLine{
baseUnit
string nullable: true
The base unit of the product, eg pce or meter.
carrier
string nullable: true
The description of the Carrier who ships the order
discountAmountExclVat
number($double)
nullable: true
This field can be used to give the calculated Discount Amount using a discount percentage. Or just give a discount amount when no discount percentage is used for the calculation.
discountDescription
string nullable: true
A description of the discount from the ERP.
discountPercentage
number($double)
nullable: true
A percentage of the give discount on the default netto price excluding VAT. When this field is set, the field DiscountAmountExclVat is required.
grossPriceExclVat
number($double)
The gross price excluding vat
isExternal
boolean
If the order line is added by the ERP system (for example when its an extra fee or shipping costs), this field must be set true. If Shoxl Shop adds an order line this field is set false.
nettoPriceExclVat
number($double)
The netto price excluding vat, this can be a customer-specific or even project-specific price.
nettoPriceInclVat
number($double)
The netto price including vat, this can be a customer-specific or even project-specific price.
orderLineStatus
integer($int32)
The status of the order line, 0 = open, 1 = backorder, 2 = shipped, 3 = cancelled
priceUnit
number($double)
The quantity on which price is based
productDescription
string nullable: true
The default description of the product
productNumber
string nullable: true
The product number for the requested product details, this can be a customer-specific product number. If IsExternal=false, the ordernumber must be filled.
quantity
number($double)
The number of items ordered
remainingQuantity
number($double)
The number of items not yet shipped.
subTotalPriceExclVat
number($double)
Sub Total of the order line excluding Vat
subTotalPriceInclVat
number($double)
Sub Total of the order line including Vat
taxPercentage
number($double) nullable: true
The tax percentage of the product
trackAndTraceReference
string nullable: true
If available, a track and trace reference of the carrier. This can be an unique code or a uri.
type
integer($int32)
Type of the OrderLine:
0 = None,
1 = Product,
2 = Shipping,
3 = Payment,
4 = Other,
5 = Discount,
6 = DisposalFee
customOrderFields
dictionary(string,string) nullable:true
}
Example:
Response body:
PlaceOrderResult{
parameter
type
errorCode
string nullable: true
errorDescription
string nullable: true
orderSuccessful
boolean
orderNumber
string nullable: true
}