Glop,
Il semble y avoir des lièvres un peu dodus qui se balladent dans la gestion des taxes.
Dans le formulaire d'édition d'un produit, il est dit à propos de celle-ci : « Valeur par défaut sur le site : N%. Ce champ peut être laissé vide. ».
On devrait donc théoriquement pouvoir laisser le champ vide pour laisser appliquer la taxe par défaut, ou mettre une valeur de 0 si on ne veut pas de taxe pour ce produit : ce sont 2 cas de figure différents.
Mais dans la pratique, ça n'est pas pris en compte de façon consistante.
Déjà un détail dans le formulaire : la taxe globale est prise comme valeur par défaut. Ça fait qu'on doit vider le champ à chaque passage si on veut explicitement du vide : https://git.spip.net/plugin/produits/src/branch/master/formulaires/editer_produit.php#L72
Pénible.
Plus problématique : dans la fonction qui calcule le prix TTC avec le plugin prix, la taxe par défaut n'est *jamais* appliquée.
https://git.spip.net/plugin/produits/src/branch/master/prix/produit.php#L12
Un floatval() transforme les chaînes vides en '0', et donc pas de fallback dans ce cas.
Dans la fiche d'un produit, quand il a une taxe de 0, le label affiche la taxe par défaut du site au lieu de '0%' : https://git.spip.net/plugin/produits/src/branch/master/prive/squelettes/contenu/produit.html#L16
Je n'ai pas regardé le reste en détail, mais à vue de nez il semble y avoir d'autres endroits où la différence entre valeur vide et valeur '0' est mal prise en compte (dans le charger du formulaire d'édition par ex.).
Bon, je n'ose pas trop y toucher avant d'avoir des retours quand même.
Le plus gênant étant surtout la fonction qui calcule le prix ttc.