ProcessOrder

This function is used for creating and updating orders. It may also be used for canceling orders that have not yet been handled.

Note: this function expects that an article will never appear on two or more distinct order lines on the same order. Please see this article if your integration requires several order lines with the same article.

Tags: ProcessOrder, CustomerOrder, OrderInfoClass, GoodsOwner, Customer, TransporterContractClass, CustomerOrderLine, CustomerOrderTextLine, OrderTransportServices, ReturnTransporterContractClass, OrderType, WayOfDeliveryType, TypeClass, OrderNotification, OutboundWarehouse, OrderCustoms, OrderClasses, Coordinates, InvoiceAddress, CustomerGroup, SubOrderLine, VatCodeClass, OrderLineArticleItemStatus, CustomerOrderLineArticleItem, OrderLineType, OrderClass, ProcessOrderResponse, FileResultClass

Request XML

POST /xxx/Service.asmx HTTP/1.1
Host: api.ongoingsystems.se
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://ongoingsystems.se/WSI/ProcessOrder"

<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ProcessOrder xmlns="http://ongoingsystems.se/WSI">
      <GoodsOwnerCode>string</GoodsOwnerCode>
      <UserName>string</UserName>
      <Password>string</Password>
      <co>
        <OrderInfo>
          <OrderIdentification>ExternalOrderCode or GoodsOwnerOrderNumber or ReferenceNumber or SystemId or GoodsOwnerOrderId</OrderIdentification>
          <OrderOperation>Create or CreateOrUpdate or Update or Remove</OrderOperation>
          <Communication>string</Communication>
          <OrderId>int</OrderId>
          <ReferenceNumber>string</ReferenceNumber>
          <GoodsOwnerOrderNumber>string</GoodsOwnerOrderNumber>
          <GoodsOwnerOrderId>string</GoodsOwnerOrderId>
          <SalesCode>string</SalesCode>
          <OrderRemark>string</OrderRemark>
          <ConsigneeOrderNumber>string</ConsigneeOrderNumber>
          <WayOfDelivery>string</WayOfDelivery>
          <TermsOfDelivery>string</TermsOfDelivery>
          <TermsOfPayment>string</TermsOfPayment>
          <ProfitCenter>string</ProfitCenter>
          <DeliveryInstruction>string</DeliveryInstruction>
          <TransporterOrderNumber>string</TransporterOrderNumber>
          <FreightPrice>decimal</FreightPrice>
          <DeliveryDate>dateTime</DeliveryDate>
          <ArrivalDateFrom>dateTime</ArrivalDateFrom>
          <ArrivalDate>dateTime</ArrivalDate>
          <WayBill>string</WayBill>
          <CustomerPrice>decimal</CustomerPrice>
          <OrderStatusCreated>int</OrderStatusCreated>
          <OrderStatusUpdated>int</OrderStatusUpdated>
          <Language>string</Language>
          <OrderType>
            <OrderTypeOperation>Find or CreateOrFind</OrderTypeOperation>
            <OrderTypeIdentification>OrderTypeCode or OrderTypeName</OrderTypeIdentification>
            <OrderTypeCode>string</OrderTypeCode>
            <OrderTypeName>string</OrderTypeName>
          </OrderType>
          <WayOfDeliveryType>
            <WayOfDeliveryTypeOperation>CreateOrUpdate or CreateOrFind or Find</WayOfDeliveryTypeOperation>
            <WayOfDeliveryTypeIdentification>Code or Name</WayOfDeliveryTypeIdentification>
            <Code>string</Code>
            <Name>string</Name>
          </WayOfDeliveryType>
          <TermsOfDeliveryType>
            <TypeOperation>CreateOrUpdate or Find or FindOrCreate</TypeOperation>
            <TypeIdentification>Code or Name</TypeIdentification>
            <Code>string</Code>
            <Name>string</Name>
          </TermsOfDeliveryType>
          <OrderNotification>
            <Telephone>string</Telephone>
            <MobilePhone>string</MobilePhone>
            <Email>string</Email>
            <NotifyByEmail>boolean</NotifyByEmail>
            <NotifyBySms>boolean</NotifyBySms>
            <NotifyByTelephone>boolean</NotifyByTelephone>
          </OrderNotification>
          <InvoiceNumber>string</InvoiceNumber>
          <InvoiceTypeCode>string</InvoiceTypeCode>
          <InvoiceUrl>string</InvoiceUrl>
          <OutboundWarehouse>
            <WarehouseIdentification>WarehouseCode or WarehouseName or WarehouseId</WarehouseIdentification>
            <WarehouseCode>string</WarehouseCode>
            <WarehouseName>string</WarehouseName>
            <WarehouseId>int</WarehouseId>
          </OutboundWarehouse>
          <ProductionCode>string</ProductionCode>
          <PickingPriority>int</PickingPriority>
          <OrderServicePointCode>string</OrderServicePointCode>
          <FreeText1>string</FreeText1>
          <FreeText2>string</FreeText2>
          <FreeText3>string</FreeText3>
          <MarketPlace>string</MarketPlace>
          <MarketPlaceOrderNumber>string</MarketPlaceOrderNumber>
          <Customs>
            <CustomsValueCurrencyCode>string</CustomsValueCurrencyCode>
          </Customs>
          <PreparedTransportDocumentId>string</PreparedTransportDocumentId>
          <WarehouseInstruction>string</WarehouseInstruction>
          <OrderClasses>
            <Operation>FindOrCreate or Find</Operation>
            <Identification>Code</Identification>
            <Classes>
              <Class>
                <Name>string</Name>
                <Code>string</Code>
                <Comment>string</Comment>
                <IsPalletTypeSuggestion>boolean</IsPalletTypeSuggestion>
              </Class>
              <Class>
                <Name>string</Name>
                <Code>string</Code>
                <Comment>string</Comment>
                <IsPalletTypeSuggestion>boolean</IsPalletTypeSuggestion>
              </Class>
            </Classes>
          </OrderClasses>
          <OrderFreeDateTime1>dateTime</OrderFreeDateTime1>
          <TransporterBulkId>string</TransporterBulkId>
          <OrderFreeDateTime2>dateTime</OrderFreeDateTime2>
        </OrderInfo>
        <GoodsOwner>
          <GoodsOwnerIdentification>SystemId or GoodsOwnerCode</GoodsOwnerIdentification>
          <GoodsOwnerCode>string</GoodsOwnerCode>
          <GoodsOwnerId>int</GoodsOwnerId>
          <FinancialCode>string</FinancialCode>
          <GoodsLocationCode>string</GoodsLocationCode>
        </GoodsOwner>
        <Customer>
          <CustomerOperation>Create or CreateOrUpdate or CreateNotUpdate or Find</CustomerOperation>
          <CustomerIdentification>ExternalCustomerCode or SystemId or CustomerNumber or FullNameAndAddress</CustomerIdentification>
          <ExternalCustomerCode>string</ExternalCustomerCode>
          <CustomerNumber>string</CustomerNumber>
          <CustomerId>int</CustomerId>
          <DeliveryAddressId>int</DeliveryAddressId>
          <InvoiceAddressId>int</InvoiceAddressId>
          <Coordinates>
            <Longitude>decimal</Longitude>
            <Latitude>decimal</Latitude>
          </Coordinates>
          <Name>string</Name>
          <Address>string</Address>
          <Address2>string</Address2>
          <Address3>string</Address3>
          <PostCode>string</PostCode>
          <City>string</City>
          <TelePhone>string</TelePhone>
          <Remark>string</Remark>
          <Email>string</Email>
          <MobilePhone>string</MobilePhone>
          <CountryCode>string</CountryCode>
          <CountryStateCode>string</CountryStateCode>
          <DeliveryInstruction>string</DeliveryInstruction>
          <IsVisible>boolean</IsVisible>
          <NotifyBySMS>boolean</NotifyBySMS>
          <NotifyByEmail>boolean</NotifyByEmail>
          <NotifyByTelephone>boolean</NotifyByTelephone>
          <InvoiceAddress>
            <Coordinates>
              <Longitude>decimal</Longitude>
              <Latitude>decimal</Latitude>
            </Coordinates>
            <Name>string</Name>
            <Address>string</Address>
            <Address2>string</Address2>
            <Address3>string</Address3>
            <PostCode>string</PostCode>
            <City>string</City>
            <TelePhone>string</TelePhone>
            <Remark>string</Remark>
            <Email>string</Email>
            <MobilePhone>string</MobilePhone>
            <CountryStateCode>string</CountryStateCode>
            <CountryCode>string</CountryCode>
            <DeliveryInstruction>string</DeliveryInstruction>
            <IsVisible>boolean</IsVisible>
            <NotifyBySMS>boolean</NotifyBySMS>
            <NotifyByEmail>boolean</NotifyByEmail>
            <NotifyByTelephone>boolean</NotifyByTelephone>
          </InvoiceAddress>
          <CustomerGroup>
            <CustomerGroupOperation>Find or CreateOrFind</CustomerGroupOperation>
            <CustomerGroupIdentification>CustomerGroupCode or CustomerGroupName</CustomerGroupIdentification>
            <CustomerGroupCode>string</CustomerGroupCode>
            <CustomerGroupName>string</CustomerGroupName>
          </CustomerGroup>
          <OrganisationNumber>string</OrganisationNumber>
          <VATNumber>string</VATNumber>
          <DoorCode>string</DoorCode>
          <AddressFreeText1>string</AddressFreeText1>
          <AddressFreeText2>string</AddressFreeText2>
        </Customer>
        <CommunicationInfo>
          <FromSystemName>string</FromSystemName>
          <ToSystemName>string</ToSystemName>
          <MessageId>string</MessageId>
        </CommunicationInfo>
        <TransporterContract>
          <TransporterContractIdentification>CodeAndServiceCodeAndCustomerNumber or CodeAndServiceCode or Code or ServiceCode or FiltersSpecified</TransporterContractIdentification>
          <TransporterContractOperation>Find or CreateOrUpdate</TransporterContractOperation>
          <TransportPayment>Collect or Prepaid or ThirdParty or UnKnown</TransportPayment>
          <TransporterCode>string</TransporterCode>
          <TransporterServiceCode>string</TransporterServiceCode>
          <CustomerNumber>string</CustomerNumber>
          <ConsigneePalletCustomerNumber>string</ConsigneePalletCustomerNumber>
          <EDICustomerCode>string</EDICustomerCode>
          <WaybillTemplate>string</WaybillTemplate>
        </TransporterContract>
        <CustomerOrderLines>
          <CustomerOrderLine>
            <OrderLineIdentification>ExternalOrderLineCode or ArticleNumber or ArticleName or ExternalOrderLineId or SystemId</OrderLineIdentification>
            <ArticleIdentification>SystemId or ArticleNumber or ProductCode or ArticleName</ArticleIdentification>
            <SubOrderLineSpecification>ArticleRegisterSpecification or RequestSpecification</SubOrderLineSpecification>
            <OrderLineSystemId>int</OrderLineSystemId>
            <DeliveryDate>dateTime</DeliveryDate>
            <ExternalOrderLineCode>string</ExternalOrderLineCode>
            <OrderLineComment>string</OrderLineComment>
            <ArticleSystemId>int</ArticleSystemId>
            <ArticleNumber>string</ArticleNumber>
            <ArticleName>string</ArticleName>
            <CustomerLinePrice>decimal</CustomerLinePrice>
            <LinePrice>decimal</LinePrice>
            <NumberOfItems>decimal</NumberOfItems>
            <CurrencyCode>string</CurrencyCode>
            <Height>decimal</Height>
            <Width>decimal</Width>
            <Length>decimal</Length>
            <DoPick>boolean</DoPick>
            <Batch>string</Batch>
            <SubOrderLines>
              <SubOrderLine>
                <CustomerOrderLine>object of type CustomerOrderLine</CustomerOrderLine>
              </SubOrderLine>
              <SubOrderLine>
                <CustomerOrderLine>object of type CustomerOrderLine</CustomerOrderLine>
              </SubOrderLine>
            </SubOrderLines>
            <MinDaysToExpiryDate>int</MinDaysToExpiryDate>
            <MaxDaysToExpiryDate>int</MaxDaysToExpiryDate>
            <ProductCode>string</ProductCode>
            <OrderLineSerial>string</OrderLineSerial>
            <Discount>decimal</Discount>
            <VatCode>
              <VatCodeOperation>Find or CreateNotUpdate</VatCodeOperation>
              <VatCodeIdentification>VatTypeCode or VatPercent</VatCodeIdentification>
              <VatCode>string</VatCode>
              <VatPercent>decimal</VatPercent>
            </VatCode>
            <OrderLineCaseNo>string</OrderLineCaseNo>
            <OrderLineArticleItemStatus>
              <Identification>ArticleItemStatusCode</Identification>
              <Operation>Find or FindOrCreate</Operation>
              <ArticleItemStatusId>int</ArticleItemStatusId>
              <ArticleItemStatusCode>string</ArticleItemStatusCode>
              <ArticleItemStatusName>string</ArticleItemStatusName>
              <IsLocked>boolean</IsLocked>
            </OrderLineArticleItemStatus>
            <OrderLineWeight>decimal</OrderLineWeight>
            <CustomerArticleNumber>string</CustomerArticleNumber>
            <ForcePickFullItems>boolean</ForcePickFullItems>
            <Items>
              <CustomerOrderLineArticleItem>
                <Operation>CreateOrUpdate</Operation>
                <Identification>Serial or OrderLineId or ArticleItemId or SerialAndArticleWithinOrder</Identification>
                <Serial>string</Serial>
                <Batch>string</Batch>
                <Volume>decimal</Volume>
                <Weight>decimal</Weight>
                <NumberOfItems>decimal</NumberOfItems>
                <Length>decimal</Length>
                <Width>decimal</Width>
                <Height>decimal</Height>
                <SecondNumberOfItems>decimal</SecondNumberOfItems>
                <ArticleItemId>int</ArticleItemId>
              </CustomerOrderLineArticleItem>
              <CustomerOrderLineArticleItem>
                <Operation>CreateOrUpdate</Operation>
                <Identification>Serial or OrderLineId or ArticleItemId or SerialAndArticleWithinOrder</Identification>
                <Serial>string</Serial>
                <Batch>string</Batch>
                <Volume>decimal</Volume>
                <Weight>decimal</Weight>
                <NumberOfItems>decimal</NumberOfItems>
                <Length>decimal</Length>
                <Width>decimal</Width>
                <Height>decimal</Height>
                <SecondNumberOfItems>decimal</SecondNumberOfItems>
                <ArticleItemId>int</ArticleItemId>
              </CustomerOrderLineArticleItem>
            </Items>
            <OrderLineTotalCustomsValue>decimal</OrderLineTotalCustomsValue>
            <WarehouseInstruction>string</WarehouseInstruction>
            <OrderLineType>
              <Operation>FindOrCreate</Operation>
              <Name>string</Name>
              <Code>string</Code>
            </OrderLineType>
            <OrderLineFreeText1>string</OrderLineFreeText1>
          </CustomerOrderLine>
          <CustomerOrderLine>
            <OrderLineIdentification>ExternalOrderLineCode or ArticleNumber or ArticleName or ExternalOrderLineId or SystemId</OrderLineIdentification>
            <ArticleIdentification>SystemId or ArticleNumber or ProductCode or ArticleName</ArticleIdentification>
            <SubOrderLineSpecification>ArticleRegisterSpecification or RequestSpecification</SubOrderLineSpecification>
            <OrderLineSystemId>int</OrderLineSystemId>
            <DeliveryDate>dateTime</DeliveryDate>
            <ExternalOrderLineCode>string</ExternalOrderLineCode>
            <OrderLineComment>string</OrderLineComment>
            <ArticleSystemId>int</ArticleSystemId>
            <ArticleNumber>string</ArticleNumber>
            <ArticleName>string</ArticleName>
            <CustomerLinePrice>decimal</CustomerLinePrice>
            <LinePrice>decimal</LinePrice>
            <NumberOfItems>decimal</NumberOfItems>
            <CurrencyCode>string</CurrencyCode>
            <Height>decimal</Height>
            <Width>decimal</Width>
            <Length>decimal</Length>
            <DoPick>boolean</DoPick>
            <Batch>string</Batch>
            <SubOrderLines>
              <SubOrderLine>
                <CustomerOrderLine>object of type CustomerOrderLine</CustomerOrderLine>
              </SubOrderLine>
              <SubOrderLine>
                <CustomerOrderLine>object of type CustomerOrderLine</CustomerOrderLine>
              </SubOrderLine>
            </SubOrderLines>
            <MinDaysToExpiryDate>int</MinDaysToExpiryDate>
            <MaxDaysToExpiryDate>int</MaxDaysToExpiryDate>
            <ProductCode>string</ProductCode>
            <OrderLineSerial>string</OrderLineSerial>
            <Discount>decimal</Discount>
            <VatCode>
              <VatCodeOperation>Find or CreateNotUpdate</VatCodeOperation>
              <VatCodeIdentification>VatTypeCode or VatPercent</VatCodeIdentification>
              <VatCode>string</VatCode>
              <VatPercent>decimal</VatPercent>
            </VatCode>
            <OrderLineCaseNo>string</OrderLineCaseNo>
            <OrderLineArticleItemStatus>
              <Identification>ArticleItemStatusCode</Identification>
              <Operation>Find or FindOrCreate</Operation>
              <ArticleItemStatusId>int</ArticleItemStatusId>
              <ArticleItemStatusCode>string</ArticleItemStatusCode>
              <ArticleItemStatusName>string</ArticleItemStatusName>
              <IsLocked>boolean</IsLocked>
            </OrderLineArticleItemStatus>
            <OrderLineWeight>decimal</OrderLineWeight>
            <CustomerArticleNumber>string</CustomerArticleNumber>
            <ForcePickFullItems>boolean</ForcePickFullItems>
            <Items>
              <CustomerOrderLineArticleItem>
                <Operation>CreateOrUpdate</Operation>
                <Identification>Serial or OrderLineId or ArticleItemId or SerialAndArticleWithinOrder</Identification>
                <Serial>string</Serial>
                <Batch>string</Batch>
                <Volume>decimal</Volume>
                <Weight>decimal</Weight>
                <NumberOfItems>decimal</NumberOfItems>
                <Length>decimal</Length>
                <Width>decimal</Width>
                <Height>decimal</Height>
                <SecondNumberOfItems>decimal</SecondNumberOfItems>
                <ArticleItemId>int</ArticleItemId>
              </CustomerOrderLineArticleItem>
              <CustomerOrderLineArticleItem>
                <Operation>CreateOrUpdate</Operation>
                <Identification>Serial or OrderLineId or ArticleItemId or SerialAndArticleWithinOrder</Identification>
                <Serial>string</Serial>
                <Batch>string</Batch>
                <Volume>decimal</Volume>
                <Weight>decimal</Weight>
                <NumberOfItems>decimal</NumberOfItems>
                <Length>decimal</Length>
                <Width>decimal</Width>
                <Height>decimal</Height>
                <SecondNumberOfItems>decimal</SecondNumberOfItems>
                <ArticleItemId>int</ArticleItemId>
              </CustomerOrderLineArticleItem>
            </Items>
            <OrderLineTotalCustomsValue>decimal</OrderLineTotalCustomsValue>
            <WarehouseInstruction>string</WarehouseInstruction>
            <OrderLineType>
              <Operation>FindOrCreate</Operation>
              <Name>string</Name>
              <Code>string</Code>
            </OrderLineType>
            <OrderLineFreeText1>string</OrderLineFreeText1>
          </CustomerOrderLine>
        </CustomerOrderLines>
        <CustomerOrderTextLines>
          <CustomerOrderTextLine>
            <ExternalOrderLineCode>string</ExternalOrderLineCode>
            <OrderLineComment>string</OrderLineComment>
            <NumberOfItems>decimal</NumberOfItems>
          </CustomerOrderTextLine>
          <CustomerOrderTextLine>
            <ExternalOrderLineCode>string</ExternalOrderLineCode>
            <OrderLineComment>string</OrderLineComment>
            <NumberOfItems>decimal</NumberOfItems>
          </CustomerOrderTextLine>
        </CustomerOrderTextLines>
        <TransportServices>
          <ExactTime>boolean</ExactTime>
          <CraneTruck>boolean</CraneTruck>
          <CarryIn>boolean</CarryIn>
        </TransportServices>
        <ReturnTransporterContract>
          <TransporterContractIdentification>CodeAndServiceCodeAndCustomerNumber or CodeAndServiceCode or ServiceCode</TransporterContractIdentification>
          <TransporterContractOperation>Find or FindOrCreate</TransporterContractOperation>
          <TransporterCode>string</TransporterCode>
          <TransporterServiceCode>string</TransporterServiceCode>
          <CustomerNumber>string</CustomerNumber>
          <ConsigneePalletCustomerNumber>string</ConsigneePalletCustomerNumber>
        </ReturnTransporterContract>
      </co>
    </ProcessOrder>
  </soap:Body>
</soap:Envelope>

Request specification

ProcessOrder
GoodsOwnerCode string(400) Req. The name/code of your client
UserName string(50) Req. Your username
Password string(50) Req. Your password
co CustomerOrder Req. The CustomerOrder object
CustomerOrder
OrderInfo OrderInfoClass Req. Defines order head information
GoodsOwner GoodsOwner Omit Only for internal purposes, don't use
Customer Customer Req. Defines where the order should be sent.
CommunicationInfo CommunicationInfo Omit Deprecated, don't use
TransporterContract TransporterContractClass An element of TransporterContract. Use to specify transporter and transporter service
CustomerOrderLines CustomerOrderLine[] Req. Containing elements of CustomerOrderLine. Defines articles and amount ordered
CustomerOrderTextLines CustomerOrderTextLine[] Containing elements of CustomerOrderTextLine. Text lines, not containing any article info
TransportServices OrderTransportServices Contains an element of TransportServices. Determines any specific transport requirements (e.g. if delivery must be done with a crane truck).
ReturnTransporterContract ReturnTransporterContractClass An element of ReturnTransporterContract. Used to specify a deviating transporter for the return shipment. E.g. if you want the warehouse to book the shipment using transporter A, but the return shipment should be booked using transporter B, then you would send in B as the return transporter using these fields.
OrderInfoClass
OrderIdentification enum Req. Defines what you want to identify the order by (what is public):
 - ExternalOrderCode (deprecated)
 - GoodsOwnerOrderNumber
 - ReferenceNumber
 - SystemId
 - GoodsOwnerOrderId
Most integrations will use GoodsOwnerOrderNumber and set it to the order number which is generated by the external system.
OrderOperation enum Req. Defines the operation:
 - CreateOrUpdate
 - Create
 - Update
 - Remove

Note 1: the recommended operation is CreateOrUpdate.

Note 2: if you use Create, then you run the risk of creating duplicate orders. See this page for more info.
Communication string(100) Communication info
OrderId int Ongoing WMS internal id (SystemId). Required if OrderIdentification = SystemId
ReferenceNumber string(50) Reference number. Required if OrderIdentification = ReferenceNumber
GoodsOwnerOrderNumber string(50) Order number. Required if OrderIdentification = GoodsOwnerOrderNumber
GoodsOwnerOrderId string(40) External order id. Required if OrderIdentification = GoodsOwnerOrderId
SalesCode string(500) Sales code. Often visible on package label (depending on transporter). 'Mark' in the GUI
OrderRemark string(500) Remark/comment about the order. 'Comment' in the GUI
ConsigneeOrderNumber string(150) Consignee order number
WayOfDelivery string(50) Obsolete. Use WayOfDeliveryType instead.
TermsOfDelivery string(50) Terms of delivery
TermsOfPayment string(50) Terms of payment
ProfitCenter string(50) Profit center
DeliveryInstruction string(300) Delivery instruction
TransporterOrderNumber string(150) Transporter order number
FreightPrice decimal Price of freight
DeliveryDate dateTime Desired delivery date. Will be 'today' if omitted
ArrivalDateFrom dateTime First day of arrival
ArrivalDate dateTime Arrival date
WayBill string(50) Waybill
CustomerPrice decimal Full price for order that the customer pays
OrderStatusCreated int Status the order should get when created
OrderStatusUpdated int Status the order should get when updated. Updates to statuses above 399 (picked or above) is not allowed if the order has allocated but not picked goods. This field shouldn't be used to cancel an order, use OrderOperation set to Remove instead.
Language string(20) Language of the consignee, in ISO 639-1. Ex SV, EN, DE, ...
OrderType OrderType Element of OrderType. Determines what type of order this is
WayOfDeliveryType WayOfDeliveryType Element of WayOfDeliveryType. Determines how the order should be delivered
TermsOfDeliveryType TypeClass Element of TermsOfDeliveryType. Enables a terms of delivery type with code and name
OrderNotification OrderNotification Element of type OrderNotification. Defines how the customer should be notified about this order by the transporter (e.g. by email). Overrides any notification specification which was set on the the Customer object
InvoiceNumber string(200) Invoice number
InvoiceTypeCode string(50) Type code of the invoice, if there are different types of invoices
InvoiceUrl string(200) Url (http) to an invoice
OutboundWarehouse OutboundWarehouse Element of type OutboundWarehouse. Defines which warehouse that should process the order (if there are multiple warehouses involed)
ProductionCode string(30) Production code
PickingPriority int Picking priority
OrderServicePointCode string(50) Code of the service point that the customer wishes to pick up the package at
FreeText1 string(300) Text field for additional comments or other information
FreeText2 string(300) Text field for additional comments or other information
FreeText3 string(300) Text field for additional comments or other information
MarketPlace string(100) The name of the market place where order originated (e.g. "eBay" or "Sello"). May be used e.g. if several market places are connected to an ERP, which is in turn connected to Ongoing WMS.
MarketPlaceOrderNumber string(100) The order number in the market place where the order originated (also see documentation above for the field MarketPlace).
Customs OrderCustoms Element of type Customs, containing information related to customs.
PreparedTransportDocumentId string(50) Reference to a transport document which been prepared in a separate transport administration system. Can be used for e.g nShift Checkout.
WarehouseInstruction string(500) Special instructions for the warehouse workers on how to handle the order.
OrderClasses OrderClasses An object of type OrderClasses, which specifies which classes this order belongs to.
OrderFreeDateTime1 dateTime A datetime field which you can use for your own purposes.
TransporterBulkId string(100) The transporter's bulk Id. This Id is sometimes required by home-delivery or package locker transporters such as Instabox or Airmee.
OrderFreeDateTime2 dateTime A datetime field which you can use for your own purposes.
GoodsOwner
GoodsOwnerIdentification enum Must always be fixed string "SystemId"
GoodsOwnerCode string(400) The name/code of the client
GoodsOwnerId int Ongoing WMS internal id of the client
FinancialCode string(50) Financial code of the client
GoodsLocationCode string(50) Goods location code
Customer
CustomerOperation enum Req. Defines the operation:
 - Create
 - CreateOrUpdate
 - CreateNotUpdate
 - Find
CustomerIdentification enum Req. Defines what you want to identify the customer by. We recommend that you use FullNameAndAddress or CustomerNumber.
 - ExternalCustomerCode
 - SystemId
 - CustomerNumber
 - FullNameAndAddress
ExternalCustomerCode string(50) External customer code. Required if CustomerIdentification = ExternalCustomerCode
CustomerNumber string(50) Customer number. Required if CustomerIdentification = CustomerNumber
CustomerId int Ongoing WMS internal id (SystemId). Required if CustomerIdentification = SystemId
DeliveryAddressId int Only usable when the Customer tag is used within the ProcessOrder request and CustomerOperation = Find. Binds the delivery address of the order directly to the Ongoing WMS system id of the address
InvoiceAddressId int Only usable when the Customer tag is used within the ProcessOrder request and CustomerOperation = Find. Binds the invoice address of the order to the Ongoing WMS system id of the address
Coordinates Coordinates Coordinates of customer
Name string(200) Name
Address string(200) Address line 1
Address2 string(200) Address line 2
Address3 string(200) Address line 3
PostCode string(50) Post code/zip
City string(200) City
TelePhone string(50) Telephone number (non cellular)
Remark string(800) Remark/comment
Email string(300) Email address
MobilePhone string(50) Mobile phone number (cellular)
CountryCode string(2) The two-letter ISO 3166-1 alpha-2 code of the country.
CountryStateCode string(50) The two-letter ISO 3166-2 abbreviation of the state. Required for United States and Canada. See ISO 3166-2:US for United States and ISO 3166-2:CA for Canada.
DeliveryInstruction string(300) Delivery instruction
IsVisible boolean False if the address shouldn't show in the system, e.g. be re-used for manual order
NotifyBySMS boolean True if the customer should be notified by the transporter through SMS
NotifyByEmail boolean True if the customer should be notified by the transporter through email
NotifyByTelephone boolean True if the customer should be notified by the transporter through phone call
InvoiceAddress InvoiceAddress Address object defining invoice address for the customer. Fields from Coordinates to NotifyByTelephone from the Customer object apply
CustomerGroup CustomerGroup Customer group, enable grouping of customers
OrganisationNumber string(20) Organisation number
VATNumber string(20) VAT number
DoorCode string(30) Door code, may be sent to transporter for use during delivery
AddressFreeText1 string(400) A free text field for the address
AddressFreeText2 string(100) A free text field for the address
TransporterContractClass
TransporterContractIdentification enum Req. Defines what you want to identify the transporter contract by:
 - FiltersSpecified
 - CodeAndServiceCodeAndCustomerNumber
 - CodeAndServiceCode
 - Code
 - ServiceCode
Most integrations will use FiltersSpecified, which will cause the system to try to find the best match given the filters that you have specified.
TransporterContractOperation enum Req. Defines the operation:
 - Find
 - CreateOrUpdate
Most integrations will use Find
TransportPayment enum Req. Defines who will pay for the transport:
 - Collect
 - Prepaid
 - ThirdParty
 - UnKnown
Most integrations will use Prepaid
TransporterCode string(50) Transporter code. See GetTransporterContracts for available codes. Required if TransporterContractIdentification = CodeAndServiceCodeAndCustomerNumber, CodeAndServiceCode or Code
TransporterServiceCode string(50) Transporter service code. See GetTransporterContracts for available codes. Required if TransporterContractIdentification = CodeAndServiceCodeAndCustomerNumber, CodeAndServiceCode or ServiceCode
CustomerNumber string(50) Customer number at the transporter. Usually not needed if TransportPayment = PrePaid
ConsigneePalletCustomerNumber string(50) Pallet reg number
EDICustomerCode string(200) Often the code defining the sender in the TA system
WaybillTemplate string(100) Waybill template
CustomerOrderLine
OrderLineIdentification enum Req. Defines what you want to identify the order line by:
 - ExternalOrderLineCode
 - ArticleNumber
 - ArticleName
 - ExternalOrderLineId (same as ExternalOrderLineCode)
 - SystemId
Most integrations will use ArticleNumber or ExternalOrderLineCode. We also have a separate article with more information about order line identification.
ArticleIdentification enum Req. Defines what you want to identify the article by:
 - SystemId
 - ArticleNumber
 - ProductCode
 - ArticleName
Most integrations will use ArticleNumber
SubOrderLineSpecification enum Defines if the sub order line structure should be retrieved from this request or from the article registry already within Ongoing WMS. Must be one of these:
 - ArticleRegistrySpecification (this is the default)
 - RequestSpecification
OrderLineSystemId int Ongoing WMS internal order line id. Required if OrderLineIdentification = SystemId
DeliveryDate dateTime Desired delivery date of this specific order line
ExternalOrderLineCode string(40) External order line code. Insert row number of your system if needed. Required if OrderLineIdentification = ExternalOrderLineCode or ExternalOrderLineId
OrderLineComment string(300) Order line comment
ArticleSystemId int Ongoing WMS internal article id. Required if ArticleIdentification = SystemId
ArticleNumber string(100) Article number. Required if ArticleIdentification = ArticleNumber
ArticleName string(200) Article name. Required if ArticleIdentification = ArticleName
CustomerLinePrice decimal Customer price of the order line. Corresponds to RowPrice in GetOrder
LinePrice decimal Price of the order line. 'Purchase price' in the GUI
NumberOfItems decimal Req. Number of items to ship for this order line
CurrencyCode string(20) Currency code of the order line, in ISO 4217. E.g. SEK, NOK or EUR
Height decimal Height in m
Width decimal Width in m
Length decimal Length in m
DoPick boolean False if this orderline should not be picked/shipped. Default value is True
Batch string(50) Enables you to specify that a certain batch should be shipped
SubOrderLines SubOrderLine[] Containing elements of SubOrderLine, each containing its own CustomerOrderLine. Use if sub order lines should be specified in this request
MinDaysToExpiryDate int Defines minimum amount of days the article is allowed to have left until expiry when shipped
MaxDaysToExpiryDate int Defines maximum amount of days the article is allowed to have left until expiry when shipped
ProductCode string(200) Product code. Required if ArticleIdentification = ProductCode
OrderLineSerial string(128) Enables a specified serial to be shipped
Discount decimal Discount of the order line (in percent)
VatCode VatCodeClass Element of type VatCode. Defines VAT code of order line
OrderLineCaseNo string(100) Defines the case number of the order line. Often used to store customs information.
OrderLineArticleItemStatus OrderLineArticleItemStatus Element of type OrderLineArticleItemStatus. Defines the status of the goods which are to be picked for the order line
OrderLineWeight decimal Used in rare cases. If the goods have variable weights this can be used as a target weight. In kg.
CustomerArticleNumber string(100) Defines the customer's article number for the order line, if it differs from the ordinary article number. This field can be displayed on a delivery note.
ForcePickFullItems boolean Determines if whole units (e.g. pallets or packages) must be picked. Enabling this will very likely lead to the delivered quantity being larger than the ordered quantity. Default value is False.
Items CustomerOrderLineArticleItem[] Element of type CustomerOrderLineArticleItem. Only used in advanced cases where you wish to send in exactly the article items which are to be picked.
OrderLineTotalCustomsValue decimal The total customs value for this order line. The currency is sent in the field CustomsValueCurrencyCode.
WarehouseInstruction string(300) Special instructions for the warehouse workers on how to handle the order line.
OrderLineType OrderLineType Elements of type OrderLineType. Represents the order line type.
OrderLineFreeText1 string(300) Free text field. This field can for example be displayed on a delivery note.
CustomerOrderTextLine
ExternalOrderLineCode string(50) Req. Text line row number
OrderLineComment string(300) Req. Comment/order line text
NumberOfItems decimal Number of items
OrderTransportServices
ExactTime boolean Determines if the delivery must happen at a specific time
CraneTruck boolean Determines if the delivery must be done with a crane truck
CarryIn boolean Determines if the delivery men should carry the goods in to the customer
ReturnTransporterContractClass
TransporterContractIdentification enum Req. Defines what you want to identify the transporter contract by:
 - CodeAndServiceCodeAndCustomerNumber
 - CodeAndServiceCode
 - ServiceCode
Most integrations will use CodeAndServiceCode
TransporterContractOperation enum Req. Defines the operation:
 - Find
 - FindOrCreate
Most integrations will use Find
TransporterCode string(50) Transporter code. See GetTransporterContracts for available codes. Required if TransporterContractIdentification = CodeAndServiceCodeAndCustomerNumber, CodeAndServiceCode or Code
TransporterServiceCode string(50) Transporter service code. See GetTransporterContracts for available codes. Required if TransporterContractIdentification = CodeAndServiceCodeAndCustomerNumber, CodeAndServiceCode or ServiceCode
CustomerNumber string(50) Customer number at the transporter. Usually not needed.
ConsigneePalletCustomerNumber string(50) Pallet reg number
OrderType
OrderTypeOperation enum Req. Defines the operation:
 - Find
 - CreateOrFind
OrderTypeIdentification enum Req. Defines what you want to identify the type by:
 - OrderTypeCode
 - OrderTypeName
OrderTypeCode string(50) Order type code. Required if OrderTypeIdentification = OrderTypeCode
OrderTypeName string(50) Order type name. Required if OrderTypeIdentification = OrderTypeName
WayOfDeliveryType
WayOfDeliveryTypeOperation enum Req. Defines the operation
 - CreateOrUpdate
 - Find
WayOfDeliveryTypeIdentification enum Req. Defines what you want to identify the type by
 - Code
 - Name
Code string(50) Way of delivery type code. Required if WayOfDeliveryTypeIdentification = Code
Name string(100) Way of delivery type name. Required if WayOfDeliveryTypeIdentification = Name
TypeClass
TypeOperation enum Req. Defines the operation:
 - CreateOrUpdate
 - Find
 - FindOrCreate
TypeIdentification enum Req. Defines what you want to identify the group by:
 - Code
 - Name
Code string(50) Article category code. Required if TypeIdentification = Code
Name string(200) Article category name. Required if TypeIdentification = Name
OrderNotification
Telephone string(50) Telephone number (non cellular) to notify by call. Required if NotifyByTelephone = True
MobilePhone string(50) Mobile phone number to notify by SMS. Required if NotifyBySMS = True
Email string(200) Email address to notify. Required if NotifyByEmail = True
NotifyByEmail boolean True if the customer should be notified by the transporter through email
NotifyBySms boolean True if the customer should be notified by the transporter through SMS
NotifyByTelephone boolean True if the customer should be notified by the transporter through phone call
OutboundWarehouse
WarehouseIdentification enum Req. Defines what you want to identify the warehouse by:
 - WarehouseCode
 - WarehouseName
 - WarehouseId
WarehouseCode string(50) Warehouse code. Required if WarehouseIdentification = WarehouseCode
WarehouseName string(200) Warehouse name. Required if WarehouseIdentification = WarehouseName
WarehouseId int Warehouse id. Required if WarehouseIdentification = WarehouseId
OrderCustoms
CustomsValueCurrencyCode string(20) The customs currency of the order. Only applicable if you also send in the customs values for each order line (in the field OrderLineTotalCustomsValue).
OrderClasses
Operation enum Req. Defines the operation for each class:
 - Find
 - FindOrCreate
Most integrations will use FindOrCreate
Identification enum Req. Defines what you want to identify each class. Currently there is only one type of valid identification:
 - Code - identifies the class using the code
Classes OrderClass[] Req. A list of Class objects, each object representing one order class.
Coordinates
Longitude decimal Req. Longitude
Latitude decimal Req. Latitude
InvoiceAddress
Coordinates Coordinates Coordinates of the invoice address
Name string(200) Name
Address string(200) Address line 1
Address2 string(200) Address line 2
Address3 string(200) Address line 3
PostCode string(50) Post code/zip
City string(200) City
TelePhone string(50) Telephone number (non cellular)
Remark string(800) Remark/comment
Email string(300) Email address
MobilePhone string(50) Mobile phone number (cellular)
CountryStateCode string(50) The two-letter ISO 3166-2 abbreviation of the state. Mainly used for United States and Canada. See ISO 3166-2:US for United States and ISO 3166-2:CA for Canada.
CountryCode string(2) The two-letter ISO 3166-1 alpha-2 code of the country.
DeliveryInstruction string(300) Delivery instruction
IsVisible boolean False if the address shouldn't show in the system, e.g. be re-used for manual order
NotifyBySMS boolean True if the customer should be notified by the transporter through SMS
NotifyByEmail boolean True if the customer should be notified by the transporter through email
NotifyByTelephone boolean True if the customer should be notified by the transporter through phone call
CustomerGroup
CustomerGroupOperation enum Req. Defines the operation
 - Find
CustomerGroupIdentification enum Req. Defines what you want to identify the customer group by
 - CustomerGroupCode
 - CustomerGroupName
CustomerGroupCode string
CustomerGroupName string Customer group name. Required if CustomerGroupIdentification = CustomerGroupName
SubOrderLine
CustomerOrderLine CustomerOrderLine An element of type CustomerOrderLine.
VatCodeClass
VatCodeOperation enum Req. Defines the operation:
 - Find
 - CreateNotUpdate
VatCodeIdentification enum Req. Defines what you identify the VAT by:
 - VatTypeCode
 - VatPercent
VatCode string(50) VAT code. Required if VatCodeIdentification = VatTypeCode
VatPercent decimal VAT percent. Required if VatCodeIdentification = VatPercent or VatCodeOperation = CreateNotUpdate
OrderLineArticleItemStatus
Identification enum Req. Defines what you identify the item status by. Currently only one option is available:
 - ArticleItemStatusCode
Operation enum Req. Defines the operation. Currently only one option is available:
 - Find
ArticleItemStatusId int Obsolete, do not use!
ArticleItemStatusCode string Req. Item status code. Required if Identification = ArticleItemStatusCode
ArticleItemStatusName string Item status name.
IsLocked boolean Obsolete, do not use!
CustomerOrderLineArticleItem
Operation enum Req. Defines the operation:
 - CreateOrUpdate
Identification enum Req. Defines what you identify the item by:
 - SerialAndArticleWithinOrder
 - Serial
 - ArticleItemId
 - OrderLineId - obsolete, do not use!

Note 1: if you use Serial, then the serial number must be public among all serial numbers used for the goodsowner. If you use SerialAndArticleWithinOrder, then each serial number must only be public per order and article.

Note 2: the most common way is to use SerialAndArticleWithinOrder.
Serial string(128) The article item's serial number. Required if Identification = Serial.
Batch string(50) The article item's batch number.
Volume decimal The article item's volume.
Weight decimal The article item's weight.
NumberOfItems decimal Number of items of this article item to pick.
Length decimal The article item's length.
Width decimal The article item's width.
Height decimal The article item's height.
SecondNumberOfItems decimal The article item's secondary number of items.
ArticleItemId int The article item id. Required if Identification = ArticleItemId.
OrderLineType
Operation enum Req. Must be FindOrCreate.
Name string(100) The name of the order line type.
Code string(100) Req. The order line type code.
OrderClass
Name string(200) The name of the class.
Code string(200) The code of the class.
Comment string(500) Comment.
IsPalletTypeSuggestion boolean Whether or not this order class is intended to be used as a hint for the type of packaging which is suitable for the order.

Response XML

<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ProcessOrderResponse xmlns="http://ongoingsystems.se/WSI">
      <ProcessOrderResult>
        <ErrorMessage>string</ErrorMessage>
        <GoodsOwnerOrderNumber>string</GoodsOwnerOrderNumber>
        <OrderId>int</OrderId>
        <InOrderId>int</InOrderId>
        <ArticleDefId>int</ArticleDefId>
        <Success>boolean</Success>
        <Message>string</Message>
      </ProcessOrderResult>
    </ProcessOrderResponse>
  </soap:Body>
</soap:Envelope>

Response specification

ProcessOrderResponse
ProcessOrderResult FileResultClass
FileResultClass
ErrorMessage string Error message
GoodsOwnerOrderNumber string(50)
OrderId int
InOrderId int
ArticleDefId int
Success boolean True if success
Message string Process message