Во-первых, код регистрации CPT у вас сильно упрощен, там есть еще куча нужных параметров. 'has_archive' принимает не только булево значение, но и строку (собственно, как будет выглядеть url base архива). Есть еще важный параметр 'rewrite', который принимает целый массив значений.
В принципе, добиться желаемого вы можете, вручную добавив свое правило rewrite_rule с параметром top, тогда оно будет отрабатываться первым и смотреть именно продукты. Впрочем, надо тестировать, потому что я подозреваю, что в этом случае у вас перестанут работать обычные страницы. А может и нет - никогда не было необходимости так делать.
А вообще, если честно, это очередные пляски без надобности. Контент должен иметь base, по которому система определяет что это за тип данных (post type), а также это полезно и для SEO, плюс, собственно, архив - по адресу /products/ прям очень логично просится. В общем, у вас привычная и стандартная схема, зачем вам ее менять?