The API uses Simple Object Access Protocol (SOAP) technology.
In the terminology of Ongoing WMS, the customers of a warehouse are called goods owners. The goods owners are the companies which have outsourced their warehousing needs to the warehouse company.
Because a warehouse can potentially have more than one customer (goods owner), you will need to specify the goods owner in each call to the Ongoing WMS API.
You will need four credentials in order to access the API. The administrator of the warehouse system can generate these by following this guide.
|GoodsOwnerId||int||The id of the goods owner|
|GoodsOwnerCode||str||The code (name) of your goods owner|
UserName and Password will always be needed.
As explained above, each API call requires you to identify the intended goods owner. The goods owner is specified using either GoodsOwnerId or GoodsOwnerCode. Some API calls require the ID and others require the code. This is somewhat inconsistent, but there are historical reasons for why it is this way.
Each Ongoing WMS has its own address. In order to communicate with the API, you'll need to acquire the correct URL from your client. As an example, this is the URL for our API demo site:
The WSDL can be retrieved from the SOAP URL by adding the parameter "?WSDL". This is the WSDL of our demo system:
Note that excessive polling of this URL will result in a 503 error message. Only retrieve the WSDL once during development and not as a part of a scheduled integration task.
Changes to the API
As a general rule, we do not remove functions or fields from the API. However, we might add more fields or functions. This should be taken into account when building the integration. Your code should not break if a field is added. Fields are always added to the end of each object.
Make sure to not poll the API excessively. Your scheduled jobs should run a few times per hour, and not several times per second. If excessive polling occurs, Ongoing WMS will shut down the API access if the problem isn't fixed after a reasonable amount of time.
In the documentation, required elements are marked with "Req.". These elements are always required. Elements marked with "Req.*" are conditionally required.
Note that elements are only required if the parent object is used.