Sylius/Sylius — pull request #943 by mtotheikle (2014-01-30 06:56:32+00:00)
Title: [WIP] Starting support for ordering in the backend

This commit starts to add support for ordering in the backend by reusing steps from the fronted.

This PR is initially just some thoughts on how to handle step configuration based on the process being executed. This is currently a temp implementation and all the process options that get passed to steps should all be configurable via DI

Todo:
* Missing the most important step, product selection, see below for more details on my thoughts for that
* What is the best way to use custom templates in each step based on the process since steps are easily reused for most of the logic within backend / fronted. I have proposed one solution here but are there others
* Addressing page has error of not showing the second address if the checkbox for different shipping address is selected
* The service definitions need a better way to pass the options. I'm thinking some clever work with DI factory will be able to read the two checkout processes and be able to build a configuration array for each process under the sylius_core config key
* Templates need to be cleaned up and more code needs to be moved to a common template
* Based on the event refactoring, what specifically are the security events like SECURITY_INITIALIZE for. I'm thinking for the backend these events would have to be executed after the admin selects an existing user or creates a new user

**Admin Product Selection Ideas:**
* This would be the second step in the admin checkout process
* It would display an auto-complete input field
* Once you find a product you want to add, a modal box would display to configure options like so:
![screen shot 2014-01-29 at 10 47 08 pm](https://f.cloud.github.com/assets/195964/2037799/8c7fa65a-897a-11e3-9d5e-4d1cc5f40ef8.png)
![screen shot 2014-01-29 at 10 47 15 pm](https://f.cloud.github.com/assets/195964/2037801/8c8182e0-897a-11e3-84f2-2c68697f8c9b.png)
* Once you click "Add Item" from the modal then the product would display in the steps page and you would be able to customize the price, qty and perform other actions
![screen shot 2014-01-29 at 10 47 30 pm](https://f.cloud.github.com/assets/195964/2037800/8c813aec-897a-11e3-9183-dad109b7386d.png)

I'm starting this pull request early to get feedback throughout the implementation and to also make everyone aware that this process has been started so someone else does not start their own implementation.

I'm really looking for some feedback on the approach I took for using custom templates in the steps based on the flow process being used. Please don't be too particular about the commented out / duplicated code as that will be cleaned up :)