Bonjour,
Si l'URL canonique est vide et que l'option "utiliser urls canoniques et générer si manquantes" est configurée, alors dès que le système à besoin d'une URL vers un produit, alors il va d'abord générer l'URL avec les informations courantes, et ensuite il va sauvegarder l'URL en tant qu'URL canonique.
Cela a trois avantages:
- vous n'avez pas à rentrer les URLs canoniques à la main
- l'URL qui sera générée sera fonctionnelle
- vous évitez les URLs dupliquées
Cela a deux inconvénients:
- l'URL générée n'est pas forcément la "meilleure" URL. Si le produit est accessible via trois éléments de menu / catégories différents, vous ne pouvez pas choisir quel élément de menu / catégorie prioriser. Pour éviter cela, après avoir vider les URLs canoniques des produits, il faut parcourir vos listings de produits sur le frontend pour utiliser les éléments de menu que vous souhaitez.
- une fois l'URL canonique remplie, le système va toujours utiliser cette URL. Or, si ensuite vous changez la structure de vos éléments de menu, cela peut compromettre la validité des URLs canoniques qui se basent sur ces éléments de menu. D'où les erreurs 404. Pour éviter cela, lorsque vous changez un élément de menu, il faut adapter les URLs canoniques qui se basent sur l'élément de menu. Par exemple, si vous changez un alias d'un élément de menu, il faut faire une requête MySQL sur la colonne product_canonical de la table hikashop_product pour mettre à jour les URLs canoniques utilisant l'ancien alias pour mettre le nouveau.
Avec le mode "utiliser urls canoniques si spécifiées", vous éviter le premier inconvénient, mais vous perdez également le premier avantage ou le troisème.
Avec le mode "générer les URLs dynamiquement", vous perdez soit le premier avantage soit le troisième mais vous évitez le second inconvénient.