I was wonder what are some of the Common Practices for dealing with Invoice/Order Numbers in a Multi-Channel Order management system? When the Invoice numbers generated in the seperate channels are the Index (id) columns of the Database tables.
For example; a company has a B2B ecommerce website where orders are placed. The company is a also a supplier on a B2B exchange where orders are placed.
both the B2B ecommerce website and the B2B exchange auto-matically generate order numbers based upon the ID (index) column of the orders database tables being auto-incremented.
Now, the B2B ecommerce site is being rewrote to support Multi-Channel Order Management, to support centralized management of Orders.
Now here’s my question, what are some of the common practice methods of deal with Order numbers in such a system?
My first thoughts are about using a sufix or prefix to the order numbers, as a Channel Identifier.
ie. 10001-WEB, 10200-B2B or WEB-10001, B2B-10200
The Order Management system will interact with both the internal orders of the ecommerce website and with the order system of the B2B Exchange.
I would like to work with some common sense data design, that supports future integration of perhaps other channels.
I have already thought about adding the following fields to the Orders Table,
OrderNumber - stores the order number that is generated by whatever channel.
OrderChannel - Stores a code that represents the Sales Channel associated with the order.
I have thought about using just a single field.
OrderNumber- Varchar, which stores the order numbers with either an alphanumeric prefix or sufix code for the channel.
Again, I’m a little uncertain about how to best handle things or what is or is not common. I’ve not been able to find much information about how this kind of data is handled.
Thanks.