ProcessArticle

Used to create or update an article.

Tags: ProcessArticle, ArticleDefinition, ArticleGroup, TypeClass, VatCodeClass, DangerousGoods, ArticleNames, ArticleStructureSpecification, Supplier, TaricNumbers, ArticleColor, ArticleSize, ArticleDefinitionClasses, ArticleStorageClass, AlternativeBarcodes, DefaultLocation, ProperShippingName, ArticleNameClass, StructureArticleDefinition, AddressClass, TaricNumberClass, ArticleDefinitionClass, AlternativeBarcodeClass, Language, Country, AlternativeBarcodeType, ProcessArticleResponse, 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/ProcessArticle"

<?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>
    <ProcessArticle xmlns="http://ongoingsystems.se/WSI">
      <GoodsOwnerCode>string</GoodsOwnerCode>
      <UserName>string</UserName>
      <Password>string</Password>
      <art>
        <ArticleOperation>CreateOrUpdate</ArticleOperation>
        <ArticleIdentification>SystemId or ArticleNumber or ProductCode or ArticleName</ArticleIdentification>
        <ArticleSystemId>int</ArticleSystemId>
        <ArticleNumber>string</ArticleNumber>
        <ArticleName>string</ArticleName>
        <ProductCode>string</ProductCode>
        <BarCode>string</BarCode>
        <SupplierArticleNumber>string</SupplierArticleNumber>
        <ArticleDescription>string</ArticleDescription>
        <ArticleUnitCode>string</ArticleUnitCode>
        <CountryOfOriginCode>string</CountryOfOriginCode>
        <StatisticsNumber>string</StatisticsNumber>
        <PurchaseCurrencyCode>string</PurchaseCurrencyCode>
        <Weight>decimal</Weight>
        <NetWeight>decimal</NetWeight>
        <Volume>decimal</Volume>
        <Length>decimal</Length>
        <Width>decimal</Width>
        <Height>decimal</Height>
        <QuantityPerPallet>int</QuantityPerPallet>
        <QuantityPerPackage>int</QuantityPerPackage>
        <OrderPoint>int</OrderPoint>
        <Price>decimal</Price>
        <CustomerPrice>decimal</CustomerPrice>
        <PurchasePrice>decimal</PurchasePrice>
        <IsStockArticle>boolean</IsStockArticle>
        <ArticleGroup>
          <ArticleGroupOperation>Find or FindOrCreate or Clear or CreateOrUpdate</ArticleGroupOperation>
          <ArticleGroupIdentification>ArticleGroupCode or ArticleGroupName</ArticleGroupIdentification>
          <ArticleGroupCode>string</ArticleGroupCode>
          <ArticleGroupName>string</ArticleGroupName>
        </ArticleGroup>
        <ArticleCategory>
          <TypeOperation>CreateOrUpdate or Find or FindOrCreate</TypeOperation>
          <TypeIdentification>Code or Name</TypeIdentification>
          <Code>string</Code>
          <Name>string</Name>
        </ArticleCategory>
        <VatCode>
          <VatCodeOperation>Find or CreateNotUpdate</VatCodeOperation>
          <VatCodeIdentification>VatTypeCode or VatPercent</VatCodeIdentification>
          <VatCode>string</VatCode>
          <VatPercent>decimal</VatPercent>
        </VatCode>
        <DangerousGoods>
          <UNNumber>string</UNNumber>
          <UNIsMarineHazard>boolean</UNIsMarineHazard>
          <UNIsDangerousGoods>boolean</UNIsDangerousGoods>
          <UNPackageType>I or II or III or Unknown</UNPackageType>
          <UNTunnelCodes>
            <UNTunnelCode>A or B or C or D or E or B1000C or C5000D</UNTunnelCode>
            <UNTunnelCode>A or B or C or D or E or B1000C or C5000D</UNTunnelCode>
          </UNTunnelCodes>
          <UNClassNumber>string</UNClassNumber>
          <UNProperShippingName>
            <Name>string</Name>
            <LanguageCode>string</LanguageCode>
          </UNProperShippingName>
          <UNProperShippingName>
            <Name>string</Name>
            <LanguageCode>string</LanguageCode>
          </UNProperShippingName>
          <UNLabelNumbers>string</UNLabelNumbers>
          <DangerousGoodsCoefficient>decimal</DangerousGoodsCoefficient>
          <EmSCode>string</EmSCode>
        </DangerousGoods>
        <DangerousGoods>
          <UNNumber>string</UNNumber>
          <UNIsMarineHazard>boolean</UNIsMarineHazard>
          <UNIsDangerousGoods>boolean</UNIsDangerousGoods>
          <UNPackageType>I or II or III or Unknown</UNPackageType>
          <UNTunnelCodes>
            <UNTunnelCode>A or B or C or D or E or B1000C or C5000D</UNTunnelCode>
            <UNTunnelCode>A or B or C or D or E or B1000C or C5000D</UNTunnelCode>
          </UNTunnelCodes>
          <UNClassNumber>string</UNClassNumber>
          <UNProperShippingName>
            <Name>string</Name>
            <LanguageCode>string</LanguageCode>
          </UNProperShippingName>
          <UNProperShippingName>
            <Name>string</Name>
            <LanguageCode>string</LanguageCode>
          </UNProperShippingName>
          <UNLabelNumbers>string</UNLabelNumbers>
          <DangerousGoodsCoefficient>decimal</DangerousGoodsCoefficient>
          <EmSCode>string</EmSCode>
        </DangerousGoods>
        <ArticleNames>
          <ArticleName>
            <Language>
              <LanguageCode>string</LanguageCode>
            </Language>
            <ArticleName>string</ArticleName>
          </ArticleName>
          <ArticleName>
            <Language>
              <LanguageCode>string</LanguageCode>
            </Language>
            <ArticleName>string</ArticleName>
          </ArticleName>
        </ArticleNames>
        <ArticleStructureSpecification ArticleStructureType="StructureArticle or ProductionArticle">
          <StructureArticleDefinition>
            <NumberOfItems>decimal</NumberOfItems>
            <SubArticleDefinition>object of type ArticleDefinition</SubArticleDefinition>
          </StructureArticleDefinition>
          <StructureArticleDefinition>
            <NumberOfItems>decimal</NumberOfItems>
            <SubArticleDefinition>object of type ArticleDefinition</SubArticleDefinition>
          </StructureArticleDefinition>
        </ArticleStructureSpecification>
        <MainSupplier>
          <SupplierIdentificationType>SupplierNumber or SupplierName or FullNameAndAdress</SupplierIdentificationType>
          <SupplierOperation>CreateOrUpdate or Find or CreateOrFind</SupplierOperation>
          <SupplierNumber>string</SupplierNumber>
          <SupplierName>string</SupplierName>
          <Address>
            <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>
            <IsEuCountry>boolean</IsEuCountry>
            <CountryStateCode>string</CountryStateCode>
            <CountryCode>string</CountryCode>
            <DeliveryInstruction>string</DeliveryInstruction>
            <IsVisible>boolean</IsVisible>
            <NotifyBySMS>boolean</NotifyBySMS>
            <NotifyByEmail>boolean</NotifyByEmail>
            <NotifyByTelephone>boolean</NotifyByTelephone>
          </Address>
          <comment>string</comment>
        </MainSupplier>
        <IsGSPCertified>boolean</IsGSPCertified>
        <MaxStockDays>int</MaxStockDays>
        <BarCodePackage>string</BarCodePackage>
        <LinkToPicture>string</LinkToPicture>
        <BarCodePallet>string</BarCodePallet>
        <QuantityPerLayer>int</QuantityPerLayer>
        <PalletHeight>decimal</PalletHeight>
        <TaricNumbers>
          <TaricNumber>
            <Country>
              <CountryCode>string</CountryCode>
            </Country>
            <TaricNumber>string</TaricNumber>
          </TaricNumber>
          <TaricNumber>
            <Country>
              <CountryCode>string</CountryCode>
            </Country>
            <TaricNumber>string</TaricNumber>
          </TaricNumber>
        </TaricNumbers>
        <IsObsolete>boolean</IsObsolete>
        <MinDaysToExpiryDate>int</MinDaysToExpiryDate>
        <AdditionalStatisticsNumber>string</AdditionalStatisticsNumber>
        <CustomsExportConditions>string</CustomsExportConditions>
        <ArticleColor>
          <ColorCode>string</ColorCode>
          <ColorName>string</ColorName>
          <ArticleColorOperation>FindOrCreate or CreateOrUpdate or Find</ArticleColorOperation>
        </ArticleColor>
        <ArticleSize>
          <SizeCode>string</SizeCode>
          <SizeName>string</SizeName>
          <ArticleSizeOperation>FindOrCreate or CreateOrUpdate or Find</ArticleSizeOperation>
        </ArticleSize>
        <IsSerialNumberArticle>boolean</IsSerialNumberArticle>
        <IsBatchArticle>boolean</IsBatchArticle>
        <ArticleDefinitionClasses>
          <ArticleDefinitionClassesOperation>FindOrCreate</ArticleDefinitionClassesOperation>
          <Classes>
            <Class>
              <Name>string</Name>
              <Code>string</Code>
              <Comment>string</Comment>
            </Class>
            <Class>
              <Name>string</Name>
              <Code>string</Code>
              <Comment>string</Comment>
            </Class>
          </Classes>
          <HandlingModeSpecified>boolean</HandlingModeSpecified>
          <HandlingMode>Add or Set</HandlingMode>
        </ArticleDefinitionClasses>
        <ArticleFreeDecimal1>decimal</ArticleFreeDecimal1>
        <ArticleFreeDecimal2>decimal</ArticleFreeDecimal2>
        <ArticleStoragePriority>int</ArticleStoragePriority>
        <SubQuantityPerItem>decimal</SubQuantityPerItem>
        <StorageClass>
          <Name>string</Name>
        </StorageClass>
        <AlternativeBarcodes>
          <AlternativeBarcode>
            <AlternativeBarcodeType>
              <Name>string</Name>
              <Code>string</Code>
            </AlternativeBarcodeType>
            <Barcode>string</Barcode>
            <QuantityPerBarcode>decimal</QuantityPerBarcode>
          </AlternativeBarcode>
          <AlternativeBarcode>
            <AlternativeBarcodeType>
              <Name>string</Name>
              <Code>string</Code>
            </AlternativeBarcodeType>
            <Barcode>string</Barcode>
            <QuantityPerBarcode>decimal</QuantityPerBarcode>
          </AlternativeBarcode>
        </AlternativeBarcodes>
        <MaxStackNumberOfLevels>decimal</MaxStackNumberOfLevels>
        <IsExpiryDateArticle>boolean</IsExpiryDateArticle>
        <ArticleReturnHandlingComment>string</ArticleReturnHandlingComment>
        <ArticleCustomsDescription>string</ArticleCustomsDescription>
        <ArticleFreeDecimal3>decimal</ArticleFreeDecimal3>
        <DefaultLocation>
          <LocationName>string</LocationName>
        </DefaultLocation>
        <IsActive>boolean</IsActive>
      </art>
    </ProcessArticle>
  </soap:Body>
</soap:Envelope>

Request specification

ProcessArticle
GoodsOwnerCode string(400) Req. The name/code of your client
UserName string(50) Req. Your username
Password string(50) Req. Your password
art ArticleDefinition Req. The ArticleDefinition object
ArticleDefinition
ArticleOperation enum Req. Defines the operation. Must always be CreateOrUpdate
ArticleIdentification enum Req. Defines what you want to identify the article by:
 - SystemId
 - ArticleNumber
 - ProductCode
 - ArticleName
Most integrations use ArticleNumber
ArticleSystemId int Ongoing WMS internal id. Required if ArticleIdentification = SystemId
ArticleNumber string Article number. Required if ArticleIdentification = ArticleNumber
ArticleName string(200) Article name. Required if ArticleIdentification = ArticleName
ProductCode string(200) Product code. Required if ArticleIdentification = ProductCode. In the system it is sometimes called FactoryCode.
BarCode string Barcode/EAN. Used by warehouse to scan the article
SupplierArticleNumber string(200) Article number from the supplier
ArticleDescription string(3000) Description
ArticleUnitCode string(50) Unit code. Ask client for exact list if you wish to use.
CountryOfOriginCode string(2) The two-letter ISO 3166-1 alpha-2 code of the country.
StatisticsNumber string Statistical number or harmonization code. Use this field if exporting to a single country. Use TaricNumbers if you need different numbers for different countries.
PurchaseCurrencyCode string(20) Currency code of the purchase price, in ISO 4217. E.g. SEK, NOK or EUR
Weight decimal Weight in kg
NetWeight decimal Net weight in kg
Volume decimal Volume in m3
Length decimal Length in m
Width decimal Width in m
Height decimal Height in m
QuantityPerPallet int Number of units that fit on a pallet
QuantityPerPackage int Number of units that fit in a package/box
OrderPoint int If the stock balance falls below this value, more articles of this type should be ordered from supplier.
Price decimal Stock valuation price
CustomerPrice decimal Customer price
PurchasePrice decimal Purchase price
IsStockArticle boolean True if the article is physically kept in stock in the warehouse. Otherwise, if the article is fictional (e.g. it's a "freight cost" article), then this should be False.
ArticleGroup ArticleGroup Article group, enable grouping of articles
ArticleCategory TypeClass Article category, enables categorization of articles
VatCode VatCodeClass Of type VatCodeClass. Defines VAT code.
DangerousGoods DangerousGoods Elements of type DangerousGoods. defines ADR properties
ArticleNames ArticleNames Containing elements of ArticleNames. Enables alternative article names
ArticleStructureSpecification ArticleStructureSpecification Containing elements of StructureArticleDefinition. Enables structure/bundle and production articles.
The enum attribute ArticleStructureType can take these values:
 - StructureArticle
 - ProductionArticle
MainSupplier Supplier Element of type Supplier. The main supplier of the article.
IsGSPCertified boolean True if the article is GSP certified
MaxStockDays int Max days that an article item is allowed to be in stock
BarCodePackage string Barcode of bulk package containing this article
LinkToPicture string URL to a picture of the article.
BarCodePallet string Barcode for a pallet containing this article
QuantityPerLayer int Number of articles per layer on the pallet
PalletHeight decimal How many articles can be stacked upon each other on a pallet
TaricNumbers TaricNumbers Elements of type TaricNumberClass. Customs codes. Use this field if you need different statistical numbers (also called taric codes or harmonized codes) for exporting to different countries.
IsObsolete boolean True if the article is obsolete.
MinDaysToExpiryDate int The minimum allowed days left until expiry for shipping a product.
AdditionalStatisticsNumber string(10) Additional field for statistics number.
CustomsExportConditions string A string describing which conditions apply when the article is exported
ArticleColor ArticleColor An element of type ArticleColor.
ArticleSize ArticleSize An element of type ArticleSize.
IsSerialNumberArticle boolean True if serial numbers should be forced for the article
IsBatchArticle boolean True if batch numbers should be forced for the article
ArticleDefinitionClasses ArticleDefinitionClasses Element of type ArticleDefinitionClass. Used to set a set up tags to the article.
ArticleFreeDecimal1 decimal Custom decimal field. By default not used for anything.
ArticleFreeDecimal2 decimal Custom decimal field. By default not used for anything.
ArticleStoragePriority int Article storage priority
SubQuantityPerItem decimal In some cases, an article will contain a certain number of another article. For instance, you might wish to record that the article "Box of Nails" contains 100 nails. This field may be used to record this.
StorageClass ArticleStorageClass An element of type ArticleStorageClass. This is used for classifying articles in different storage classes based on velocity. Also known as "ABC class".
AlternativeBarcodes AlternativeBarcodes A list of elements of type AlternativeBarcodes. This is used when an article has multiple barcodes.
MaxStackNumberOfLevels decimal If the article is stackable, this represents the maximum number of levels in such a stack.
IsExpiryDateArticle boolean True if this is an article whose items have expiry dates.
ArticleReturnHandlingComment string(200) A comment on how an article should be handled when returned.
ArticleCustomsDescription string(200) Customs description. Also known as "Contents".
ArticleFreeDecimal3 decimal Custom decimal field. By default not used for anything.
DefaultLocation DefaultLocation An element of type DefaultLocation.
IsActive boolean True if the article is active.
ArticleGroup
ArticleGroupOperation enum Req. Defines the operation:
 - Find
 - FindOrCreate
 - Clear
 - CreateOrUpdate
ArticleGroupIdentification enum Req. Defines what you want to identify the group by:
 - ArticleGroupCode
 - ArticleGroupName
ArticleGroupCode string Article group code. Required if ArticleGroupIdentification = ArticleGroupCode
ArticleGroupName string Article group name. Required if ArticleGroupIdentification = ArticleGroupName
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
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
DangerousGoods
UNNumber string(10) UNNumber of ADR specification
UNIsMarineHazard boolean True if ADR is classed as a marine hazard
UNIsDangerousGoods boolean True if ADR is classed as dangerous goods
UNPackageType enum Package type
 - I
 - II
 - III
 - Unknown
UNTunnelCodes UNTunnelCode[] Tunnel codes of ADR
UNClassNumber string(50) Class number of ADR
UNProperShippingName ProperShippingName Elements of UNProperShippingName
UNLabelNumbers string(50) Label numbers of ADR
DangerousGoodsCoefficient decimal ADR Coefficient
EmSCode string EmS
ArticleNames
ArticleName ArticleNameClass A list of names for the article, of type ArticleNameClass
ArticleStructureSpecification
StructureArticleDefinition StructureArticleDefinition An element of type StructureArticleDefinition.
Supplier
SupplierIdentificationType enum Req. Defines what you identify the supplier by:
 - SupplierNumber
 - SupplierName
 - FullNameAndAdress
SupplierOperation enum Req. Defines the operation:
 - CreateOrUpdate
 - Find
 - CreateOrFind
SupplierNumber string(200) Supplier number. Required if SupplierIdentificationType = SupplierNumber or SupplierOperation = CreateOrUpdate
SupplierName string(200) Supplier name. Required if SupplierIdentificationType = SupplierName or SupplierOperation = CreateOrUpdate
Address AddressClass Address of the supplier. Required if SupplierIdentificationType = FullNameAndAdress
comment string(800) Comment about the supplier
TaricNumbers
TaricNumber TaricNumberClass List of TARIC numbers
ArticleColor
ColorCode string(50) Identifier for the color.
ColorName string Full name for the color.
ArticleColorOperation enum Defines the operation:
 - FindOrCreate
 - CreateOrUpdate
 - Find
ArticleSize
SizeCode string(50) Identifier for the size.
SizeName string Full name for the size.
ArticleSizeOperation enum Defines the operation:
 - FindOrCreate
 - CreateOrUpdate
 - Find
ArticleDefinitionClasses
ArticleDefinitionClassesOperation enum Req. Defines the operation for each class. Currently there is only one type of valid operation:
 - FindOrCreate
Classes ArticleDefinitionClass[] Req. A list of Class objects, each object representing one article definition class.
HandlingMode enum Defines the mode of operation. Valid values:
 - Add
 - Set

Add is the default value and will just add classes to the current ones. Set will remove any current classes that aren't included in the list.
ArticleStorageClass
Name string The name of the storage class (also called "ABC class").
AlternativeBarcodes
AlternativeBarcode AlternativeBarcodeClass List of alternative barcodes
DefaultLocation
LocationName string
ProperShippingName
Name string Proper shipping name
LanguageCode string Language code
ArticleNameClass
Language Language Req. Defines the language of the article name
ArticleName string(200) Req. Article name
StructureArticleDefinition
NumberOfItems decimal Req. Number of items of the specified SubArticleDefinition
SubArticleDefinition ArticleDefinition Req. ArticleDefinition object
AddressClass
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)
IsEuCountry boolean True if country is within EU
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
TaricNumberClass
Country Country An element of type Country.
TaricNumber string(50) Customs code.
ArticleDefinitionClass
Name string(50) Req. Article definition class name
Code string(50) Req. Article definition class code
Comment string(200) Article definition class comment
AlternativeBarcodeClass
AlternativeBarcodeType AlternativeBarcodeType Optional. Represents the type of alternative barcode (e.g EAN, UPC, ISBN).
Barcode string The barcode
QuantityPerBarcode decimal The quantity (of the underlying SKU) which the barcode represents. E.g a carton of the SKUs may consist of 50 pieces and the carton has an barcode, then QuantityPerBarcode is 50 for that barcode.
Language
LanguageCode string(50) Req. Language of the article name, in ISO 639-1. Ex SV, EN, DE, ...
Country
CountryCode string(2) The two-letter ISO 3166-1 alpha-2 code of the country.
AlternativeBarcodeType
Name string(300) The name of the barcode type
Code string(300) The code of the barcode type

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>
    <ProcessArticleResponse xmlns="http://ongoingsystems.se/WSI">
      <ProcessArticleResult>
        <ErrorMessage>string</ErrorMessage>
        <GoodsOwnerOrderNumber>string</GoodsOwnerOrderNumber>
        <OrderId>int</OrderId>
        <InOrderId>int</InOrderId>
        <ArticleDefId>int</ArticleDefId>
        <Success>boolean</Success>
        <Message>string</Message>
      </ProcessArticleResult>
    </ProcessArticleResponse>
  </soap:Body>
</soap:Envelope>

Response specification

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