How to remove old revisions product?
Drupal Commerce does not provide a UI nor function for this actually. However, we can look at how the Node module does it and run the same function, just adjusted.

From node.pages.inc, there is a function to delete a specific Node revision.

But that is only for a specific revision ID. Here's an adjusted function that loads a products revisions and purges them.

/**
 * Deletes a node revision.
 *
 * @param $revision_id
 *   The revision ID to delete.
 *
 * @return bool
 *   True on success, false if not.
 */
function commerce_product_revision_delete($revision_id) {
  if ($revision = entity_load('commerce_product', NULL, array('revision_id' =&gt; $revision_id))) {
    $revision = reset($revision);
    // Prevent deleting the current revision.
    $commerce_product = commerce_product_load($revision-&gt;product_id);
    if ($revision_id == $commerce_product-&gt;revision_id) {
      return FALSE;
    }

    db_delete('commerce_product_revision')
      -&gt;condition('product_id', $revision-&gt;product_id)
      -&gt;condition('revision_id', $revision-&gt;revision_id)
      -&gt;execute();
    field_attach_delete_revision('commerce_product', $revision);
    return TRUE;
  }
  return FALSE;
}


Basically the trick is ensuring you load the revision and then delete it's record and invoke field_attach_delete_revision so the old field data gets purged.

I created an issue in the queue for this: https://www.drupal.org/node/2660056