Just a hint for the dynamic list in case you find it usefull. Use dmx-bind:name, dmx-bind:id where needed to pass values in the dynamic list. Have done something similar for an ecommerce. Also (even if it is talking about image reordering) you can see the video below. It creates dynamic lists from a query inside a form and then it is submiting the form.