Mirroring shopping-cart workflow in backoffice orders
Any tips for how best to mirror the shopping cart workflow in backoffice orders?
We have a very simple shop with only a couple of products, but (a) I have implemented quite complex rules to calculate the shipping service cost based on product, location and quantity, and (b) I am using price tables for volume discounting the products themselves. We also need to apply VAT correctly (not complex - all orders are UK-based at 5% reduced rate for now - but must be correct).
We are partly B2C and partly B2B so orders may come via a variety of routes, and billing procedures and payment methods may vary. So we need to be able to accept online orders but also to be able to enter orders onto the system for our customers.
The shopping cart works a treat, but trying to enter orders via backoffice falls down for reasons that seem fairly obvious once you dig into them. But it feels like it will be a lot of work to make the two work the same and keep them that way, even though the requirements are quite limited. I'm wondering if anyone has any cheats to make it easy.
1. VAT is not applied to line item prices when they are added to the order. They don't appear to be added later in the process, although backoffice order-handling doesn't seem to enforce any workflow, so I may have missed the crucial step. I think it's more that the Rule is triggered by an event in the shopping cart workflow, and therefore never triggers in backoffice. Presumably I could create equivalent rules for this purpose, but it seems like it ought to be easier than that as it's hard to imagine the scenario where you wouldn't want the same calculations in both circumstances.
2. Price tables don't seem to work. I tried changing the quantity of a product from 1 to 6, which would definitely have triggered a re-pricing in the shopping cart, but it simply multiplied the ex-VAT price by 6. Again, presumably the rule isn't being triggered if there isn't a shopping cart.
3. The shipping charge calculation doesn't vary based on location. The Rules that do this for the shopping cart get the shipping profile postcode from the order associated with the relevant line items in the current cart, so it's easy to see why this fails as there is not current shopping cart.
All this really wants is the ability to treat backoffice orders as shopping cart orders, except you would be doing it for another user, and would need the ability to change route at the payment step in the workflow. Is there an easy way to achieve that, or do I need to mirror all the shopping cart rules in rules built for the backoffice? If the latter, how would one ensure that the rules were always triggered appropriately, when there is minimal workflow constraint?