merchant can edit products

@cgruppioni @aslawter 

This branch was repurposed after it was created to focusing on editing as a whole. The branch name was changed locally, but I haven't been able to do anything about the name here.
`.includes` is usually to fix an N+1 query. What are you trying to do?