How can customers edit orders?

Is there a way to make it possible to customers to edit their order details after placing it? I mean, add products, change options (size), change shipping address, change payment method, cancel the order…?

They can see the order and reorder it but it creates a new order and doesn't change the placed one. The only thing I can set is the repay order option, wich changes the payment method, but it is not enough…

Thank you,