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{
parameter | type | Description |
---|---|---|
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{
Parameter | Type | Description |
---|---|---|
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 |
}