Duplicate an existing Order as a new Cart in Commerce Orders can not be edited in Commerce. Makes sense. 

What we want to do however is make it very easy for someone to re-order a previous order. So for example they've had an order that contains "two pairs of socks, two pairs of pants, toothpaste, and soap" but they need all of that again as a new order.

Rather than manually having to do so, we want to offer a "re-order" button.

Given that an order is just a cart that's been marked complete, we're thinking it should just clone the order into a new cart, so they can review it and make any amends they need to, then just continue as normal with the checkout process.

I can not figure out how to do this though. Getting the Order is simple enough, and there's an existing cart set up too. But how would I punt that old Order into the new cart?
Using the MultiAdd plugin, you can do the following on the order page:

&lt;form method="POST"&gt;
    &lt;input type="hidden" name="action" value="multiAdd/multiAdd"&gt;
    &lt;input type="hidden" name="redirect" value="commerce/cart"&gt;
    {{ getCsrfInput() }}
    {% for item in order.lineItems %}
        {% set itemNumber = loop.index %}
        &lt;input type="hidden" name="items[{{ itemNumber }}][qty]" value="{{ item.qty }}"&gt;
        &lt;input type="hidden" name="items[{{ itemNumber }}][note]" value="{{ item.note }}"&gt;
        &lt;input type="hidden" name="items[{{ itemNumber }}][purchasableId]" value="{{ item.purchasableId }}"&gt;
        {% for key, option in item.options %}
            &lt;input type="hidden" name="items[{{ itemNumber }}][options][{{ key }}]" value="{{ option }}"&gt;
        {% endfor %}
    {% endfor %}
    &lt;input type="submit" value="Order Again" /&gt;
&lt;/form&gt;


This adds a "Order Again" button with the same products and quantities, but options may be bit more difficult to sort out.