On 26 Feb 2008, at 20:07, Christopher H. Laco wrote:
That's where I struggle. Two seperate workflows makes sense to me. But on the flip side, if it's one workflow, you have the ability to look at 'temp' orders and find out where people bailed in the checkout process based on the state of that order. But it's a little harder to do the same if the checkout process is never saved like an order is...even an incomplete order. It also brings more possibilities to send people emails about un-submitted orders when parts in that order go on sale, etc.
In $ork's schema a cart is just an order which doesn't have an order number yet.
This is totally crack-fuelled schema design IMO, however it *does* have all the advantages above (and means that people in a call center can pick up a customer's basket when they phone up, which is really important to us).
The best thought that I've had is that you need to be able to stack workflows into one another, so that a workflow can enter a state where it will delegate to the sub-workflow until you enter an 'exit' state in the sub-workflow...
This would enable you to have a parent 'what has to happen in an order' workflow, but allow you to plugin various different sub- workflows (e.g. getting the user's address from their pre-existing login or getting them to enter it so that you don't have to register to checkout). The value being that you can compose various different sub-workflows together trivially to create a custom 'shopping cart' work flow.
$ork's code, unfortunately, doesn't however do anything quite this smart or flexible in real life - most of the configurability is instead by having multiple possible states within the same workflow, and the state transitions / available states being changed on different sites to give an effect similar to this. This works, but is less flexible than it could be (e.g. you can't trivially pull one component out (e.g. address book) and replace it with another implementation).
Hope my random rambling sparks some thoughts/discussion, or is in some way useful ;)
Cheers Tom _______________________________________________ List: [email protected] Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/[email protected]/ Dev site: http://dev.catalyst.perl.org/
