The Brickx WMS app needs to do various mutations on the Brickx database. Sadly the Brickx database is massive so in order to understand it better me and my mentor condensed the part relevant to my project in this file.
The most important part of the schematic is how an order goes through the process of being picked. An order has multiple products and a customer invoice. The order will then get divided into order lines. These lines are placed into a pick slip. Pick slips are called by the app via the Brickx API. They hold information about what products need to be picked for an order and in what order they should be grabbed from the warehouse to maintain efficiency.
Throughout this process the stock of products will get updated. When a product is reserved its stock will be changed to reserved. Once a product is finally shipped its stock's status will be transferred to its new location (if a product is being transferred from warehouse to warehouse). If the product goes to a customer the product's stock is mutated.
The API itself is made in C# and I also got access to that project so I could see how it is built up. Further information about the API, its features and flaws can be seen in my API article.