Your hidden inputs need to have a name binded to them. For example in your situation your product_id field should be something like:
<input type="hidden" id="product_id" dmx-bind:value="product_id" dmx-bind:name="record[{{$index}}][product_id]" name="product_id">
If all your hidden inputs are like this then you will see the array in your post variables.