Orders were gathered together on our systems at Level Three. We did credit card verification on our side, settlement was done on the Client Logic side after the order was shipped.
We used the Dynamo schema with minor modifications.
Every hour (there were manual overrides as well) Java routines would extract the orders from Oracle, build HTML strings (!) and place HTTPS submissions to Client Logic, our fulfillment contractor.
Client Logic was somewhat stuck between an initial set of hacks, this HTTPS/HTML transmission, and Microsoft COM formats, which I wanted nothing to do with. They had a preliminary SOAP gateway, but neither they or I were willing to commit to their alpha implementation for this task.
The Orders were placed by a machine we referred to as 'Pivot.' Pivot was basically a gateway box sending out our orders and picking up daily inventory and order status information.
In our case the database of record was at Client Logic, as they handled returns, exchanges etc. To mitigate the problems with differing stock levels we set inventory thresholds in our database. Depending on the sales velocity of a given item (and later the return velocity) some items would have higher buffers than others.