IMO the Message module would be a perfect fit to answer this question. Using this module, you can create your own custom "Events logging" (to register things that happened in a site).
Specific to this question here, I'd create an appropriate set of so called "Message types" that fit your needs (the "concerns you're attempting to address", as in your question, seem to require multiple Message types). Some of the actual data you probably want to be included in one or more of them:
- username ("who" did something).
- event date ("when" did something happen).
- any data about the actual orders you want to track, such as the order id (of course), etc.
You could even track how those data looked like before and after they got updated, a kind of "light" revisioning (only for those attributes you want to know about).
About Message types: think of them as equivalent to Content types, whereas you create messages (instead of nodes) of a specific Message type (instead of Content type).
A really interesting facility of the Message module is its perfect integration with the Rules module. Have a look at the answer to "How to implement a follow author (or user) function?" for way more details on that.
In your case, you'd simply create a (rather basic) custom rule which uses:
- a Rules Event like "Before saving a new order", of "After updating an existing order" (or variations of these events).
- a Rules Action to "Create a message" (of a selected Message type).
That's really it ...
Example included in Commerce Kickstart
A great sample of this can be found in Commerce Kickstart, which uses the Commerce Message module, to create such "Events logging". In that case in the format of an Order History, as shown in this screenprint (from this module's project page).
More info about the Message module
The Message module is an amazing module, it is fully entity based, which implies that it perfectly (out of the box) integrates with modules such as Views and Rules.
For more details about the Message module, refer to some interesting Use Cases detailed within its Community Documentation. And/or checkout the video introduction "Your Drupal site can talk" (if you want you can fast forward to about 03:30 where it really starts).
Learn from examples
There is not a lot of documentation about the Message module (which is what makes it a hidden Drupal gem). A possible way to get started with it, and to get an idea of the kind of things it can be used for, is to have a look at the answers to:
Because of the nature of your question, it seems you'll have quite a few of custom data to be included in your custom messages (= log records to be created). Most of them will NOT be supported out of the (message) box.
However, there is a pretty amazing technique you can take advantage of, i.e. the "replacement tokens" used by the Message module. For an in depth tutorial about how to use this technique, refer to "What's the purpose of "Replacement tokens" of a Message type?". Here are some examples where this technique is used: