Bonjour,
Pour trier par catégorie, il faut utiliser:
$productClass = hikashop_get('class.product');
$categories = $productClass->getCategories($this->row->product_id);
if(!empty($price->price_product_id) && in_array('VOTRE_ID_DE_CATEGORIE',$categories){
A la place de:
if(!empty($price->price_product_id) && ($price->price_product_id == VOTRE_ID_DE_PRODUIT || $price->price_product_id == VOTRE_SECOND_ID_DE_PRODUIT)){
En ce qui concerne l'autre partie, les quantités sont des "int" ce qui veut dire des nombres entiers, c'est géré comme cela dans tout HikaShop, donc pour changer cela il y aurait pas mal de choses à faire.
Le plus simple à mon avis est de créer un custom field dans la table "produit" et le nommer longueur par exemple.
Ensuite l'utilisateur saisi sa longueur en mètre, et à l'aide d'un plugin qui sera a faire changer dynamiquement le prix du produit.
Cela nécessite des connaissances PHP.