Taxonomy + Drupal Commerce binding
Usually how you set up product display is via nodes, so 1 node have a relationship to 1 or more products (Fx a specific t-shirt in different sizes). Since products themselves doesn't have a public display, they are rendered through the nodes you create. This means that it is also going to be the nodes that have the url.

Trying to create a node path alias based on 1 or more products is going to be very tricky, because you don't know how many products you have, what if the products has different taxonomy etc. Instead it might make more sense to using the taxonomy on the nodes, or maybe use them on both. A node with a taxonomy term is a pretty normal case which is well supported. This should fix all the problems you have with url aliasing.