Hey Alex, Thanks for responding. But the behaviour you described is the one I am aiming to change. Our system requires order to be added from 3rd party website, lets say it is from Reddit.com, the orderitem from that site is stamped with a ID saying that it is from which external source.
Our problem is that such ID is not a attribute value, so the cart will make no distinguish between the item added from external site and the item that is added in xcart.
We seems to found the solution is to change the getKey() implementation of OrderItem, so the key should contain the ID from external site. It should work in theory but we haven't tested it yet, thank you very much and any comment is appreciated