Bonjour à tous;
Cyrille m'a confié une MAJ du module d'import magento, qui ne
fonctionnait plus sous les versions 3.0 et + de Dolibarr. Il n'y avait
en fait qu'un nom de champ qui posait problème pour conserver les
fonctionnalitées telles qu'elles étaient, cependant, j'ai voulu en
profiter pour permettre également l'import des catégories qui
n'étaient pas fonctionnel auparavant (tous les produits importés
étaient inséré dans la même catégorie.
Arrivant au bout, j'ai commencé les tests et me suis confronté à
l'unicité des labels de catégories, cf le log d'erreur ci dessous:
Impossible d'ajouter la catégorie : Cette catégorie existe déjà pour
cette référence
Ok. C'est logique après tout. J'essaie donc d'insérer une sous
catégorie avec le même nom dans une autre branche, même erreur. Je
vais fouiner dans le code des catégorie pour vérifier si le label doit
être unique pour toute l'arborescence:
l.744 à 747 de categories.class.php:
/**
* \brief Check if no category with same label already exists
* \return boolean 1 if already exist, 0 otherwise, -1 if error
*/ --> function already_exists()
Cette fonction est appelée par le create et vérifie l'existence du label.
l.132 - 137:
if ($this->already_exists())
{
$this->error=$langs->trans("ImpossibleAddCat");
$this->error.=" : ".$langs->trans("CategoryExistsAtSameLevel");
return -1;
}
C'est la partie "AtTheSameLevel" qui m'a mise la puce à l'oreille. Je
suppose que l'idée était d'empêché les doublons de labels pour une
même racine...