2. Although this functionality will be available we will be voiding/crediting the original order once the new order is placed. The idea is that after any modification, the new order will most likely have different totals. From our experience the cleanest way of dealing with that is to void or credit the original order and create a new order. This should be done automatically based on the payment method.
Thanks for the information, Yoav. Will this all be transparent to the customer? It sounds like at the very least they’ll need to know the new order number. Or can the original order number be reused for the modified order (obviously this will only work if the order number is not an auto-increment field in the DB)?
Thinking here of my current software, which does use the autoincrement element id in the orders table as the order number. If the order number were decoupled from the autoincrement id, then the new version of the order could be assigned the original order number (maintaining a sense of coherency for the customer and not exposing them to the mechanics of the software) and the original, now-void order could be assigned an ‘invalid’ token in the order number field. May not be possible (an ‘invalid’ token) since order numbers should be unique. Just rattling off here, perhaps you’ve already got this totally covered .
As for payment, prepay options may be tricky (credit card etc) since the order total has changed. How will Magento handle this aspect of modified orders?
(I’d prefer to see the initial payment applied to the modified order and a credit / debit amount for the difference generated, to be handled at the point the customer modifies the order. For example: customer places order and pays with credit card. Next day customer e-mails to change original order to add an item. Store owner modifies order and sends e-mail confirmation with new order details (including status change, say back to “Pending” from “Processing") to customer, along with a link the customer can use to pay the difference (that link could be to a page in the online shop, or directly to the payment gateway). This additional payment is linked to the (modified) order so that its status is updated (from, say, “Pending” to “Processing") when the payment is received.)