I think we should use strings as states. It is a bit more data to store but it simplifies a lot of things, even such trivial as displaying them. 

@winzou I think we can remove this whole "locked" cart thing, the state & methods from interface, everything. I introduced this when Cart was separated from Order, but now we don't need it at all!