This is a proposal coming from something i had to implement for one of our products
Actually productDatatypeList is harcoded in the ezshopfunctions class. See
It also happens that ezpricetype doesn't not override isIndexable function of ezdatatype and because of that, ezpricet can't be indexed by default.
For one of our projects we really needed to have prices indexable in order to do Solr search for sorting results mainly. In order to not modify anything in the ez Publish kernel we created a custom datatype extending from ezprice and just adding the isIndexable function returning too.
We called that datatype "customezprice". But as said at the very first of this explain, product data type list is hardcoded in the code and to tell eZ that our custom ezprice was in fact a price, we had to hack that class.
So, i propose adding this product datatype list string to the site.ini under the shop settings group