Erreur 404 sur de nombreux produits après import VM

  • Posts: 106
  • Thank you received: 3
  • Hikashop Business
1 year 9 months ago #347141

-- url of the page with the problem -- : www.declic-eco.fr/accessoires-electrique/accelerateur-pouce
-- HikaShop version -- : 4.7
-- Joomla version -- : 3.10.11
-- PHP version -- : 7.4

Bonjour
Nous trouvons de manière aléatoire de nombreux produits qui produisent des error 404
En allant sur la page produit, je vois que celles-ci n'ont pas d'alias
Comme ce site a migré de VM, je pense que cela doit être encore un problème de migration.
Comment régénérer toutes les urls manquantes d'un seul coup ?
Cordialement

Please Log in or Create an account to join the conversation.

  • Posts: 82426
  • Thank you received: 13274
  • MODERATOR
1 year 9 months ago #347151

Bonjour,

Il y a plusieurs raisons qui peuvent générer une 404.
Dans l'URL www.declic-eco.fr/accessoires-electrique/accelerateur-pouce l'alias du produit est "accelerateur-pouce" et l'alias de l'élément de menu courant est "accessoires-electrique". Si l'alias est vide pour un produit, alors HikaShop va utiliser automatiquement le nom du produit. Mais si vous avez des caractères spéciaux dans le nom, et que l'option "Unicode Aliases" est désactivée dans la configuration Joomla, alors HikaShop va dynamiquement enlever les caractères spéciaux du nom pour générer un alias dynamique. Le problème, c'est que dans l'autre sens, le routeur n'arrivera pas à récupérer le nom à partir de l'alias de l'URL pour savoir quel produit affiché.
Donc dans ce cas là, le souci est qu'il faudrait remplir les alias avec des valeurs corrects ou activer l'option de la configuration pour auto générer les alias et faire une action de masse pour sauvegarder les produits (et ainsi générer l'alias).
Mais le problème peut être tout autre. Si vous avez une URL canonique dans le produit et que l'option "Force canonical URLs on listings" est activée dans la configuration HikaShop, alors cette URL sera utilisée sur les listings. Mais si l'alias dans cette URL ne correspond plus à l'alias du produit, ou que l'alias de l'élément de menu dans cette URL ne correspond plus à l'alias de l'élément de menu, alors cela fera une 404. Dans ce cas, le mieux est de vider l'URL canonique des produits avec une action de masse. Ensuite, si l'option "Force canonical URLs on listings" est configurée pour générer automatiquement les URL canoniques, alors elles seront remplis automatiquement avec les nouveaux alias lorsque les listings seront affichés. Alternativement, il est possible de désactiver l'option "Force canonical URLs on listings" pour qu'HikaShop génére les URLs dynamiquement, sans prendre en compte l'URL canonique. Mais une URL canonique erronée a des conséquences néfastes sur le référencement, donc dans tous les cas, il faut que les URLs canoniques soient correctes (ou vides).

Please Log in or Create an account to join the conversation.

  • Posts: 106
  • Thank you received: 3
  • Hikashop Business
1 year 9 months ago #347156

Re
Bon plus complexe que je pensais et c'est plus confus pour moi
Je n'ai jamais activé sur aucun site "Alias Unicode"
copie écran paramèter URls

Après, pouvez-vous m'indiquer l'action à mener la plus probable car il me semble quand même que c'est suite à l'import que j'ai ces différences entre produits.
Sinon je pourrai vous repasser l'accès, plus rapide et j'ai peur aussi du temps pour se remettre dedans lundi parce que je suis dispo que jusque vers ~17h !
@+

Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 82426
  • Thank you received: 13274
  • MODERATOR
1 year 9 months ago #347159

Bonjour,

Il y a quatre solutions possible de ce que je comprends:
- vous pouvez désactiver l'option "Enlever les ids des produits et des catégories dans les URLs". Cela va rajouter les ids dans les URLs et ainsi éviter les problèmes d'alias.
- vous pouvez activez l'option "Alias Unicode". Cela va permettre à HikaShop d'utiliser le nom des produits telquels dans les URLs et ainsi le routage devrait s'y retrouver.
- vous pouvez remplir les alias manuellement dans chaque produit avec le souci (j'imagine ceux avec des accents).
- normalement, si vous éditez le produit avec ce souci une fois et vous le sauvegardez, vous aurez l'alias rempli automatiquement et cela devrait résoudre le problème. Donc il faudrait faire cela pour tous les produits avec le souci (j'imagine ceux avec des accents).

Please Log in or Create an account to join the conversation.

  • Posts: 106
  • Thank you received: 3
  • Hikashop Business
1 year 9 months ago #347204

Bonjour
Cela me gêne d'avoir des uls non courantes avec "Alias Unicode""
En dernier recours, je pencherai sur "Enlever les ids des produits et des catégories dans les URLs".
Mais je me demandè si cela ne serait pas possible avec les mass action. Si oui si vous pouvez me communiquer les règles pour aller plus vite, car il y a quand même des produits non accessibles sur ce site en prod ?
Cordialement

Please Log in or Create an account to join the conversation.

  • Posts: 82426
  • Thank you received: 13274
  • MODERATOR
1 year 9 months ago #347212

Bonjour,

Il n'y a pas de fonction pour enlever les accents en MySQL. Du coup, il faut écrire une fonction MySQL (stored procedure) si l'hébergeur vous y autorise ( stackoverflow.com/questions/11699816/utf...string-transliterate ) ou du code PHP.
En supposant que vous pouvez utiliser cette fonction MySQL ( github.com/igstan/sql-utils/blob/master/transliterate.sql ), alors vous pouvez avoir une action de masse avec une action "update the values" sur la colonne product_alias et le mode "operation" avec la valeur: transliterate(product.product_name);
Et cela enlèvera les accents du nom des produits et placera le résultat en tant qu'alias. Si vous avez des espaces il faudrait rajouter une règle pour les convertir en - et si vous avez d'autres caractères spéciaux, il faudrait les enlever.
Bref, quoi faire exactement dépend de la situation.

Avoir des URLs avec des caractères spéciaux en activant "Alias Unicode" est bien plus simple. Aussi, il n'y a pas de problème à cela. Les moteurs de recherche et les navigateurs n'ont aucun souci avec cela.

Please Log in or Create an account to join the conversation.

  • Posts: 106
  • Thank you received: 3
  • Hikashop Business
1 year 9 months ago #347222

Bonjour
Je vais voir avec le responsable sur ce qu'il veut entre l'alias unicode ou rajout d'un id !
C'est la 1ère fois que je rencontre ce cas de figure, car sur au moins 1 autre site Hikashop (migré à partir de VM), je n'ai pas eu à mettre en œuvre ce paramétrage de joomla d'alias unicode et pas trop vu de boutique européenne avec.
J'espérais une solution de réinitialiser l'alias avec enregistrement du produit sans passer pas Mysql . Est-ce du à la migration de VM ?

Please Log in or Create an account to join the conversation.

  • Posts: 82426
  • Thank you received: 13274
  • MODERATOR
1 year 9 months ago #347226

Bonjour,

Possible, mais il faudrait soit sauvegarder les produits un à un dans le backend, soit développer un peu de PHP pour faire cela avec une action "run PHP code" sur tous les produits.

En effet, le souci est lié à la migration. Car le système ne récupère pas d'alias durant l'import. Alors que si vous ajoutez un produit dans le backend manuellement, alors HikaShop va générer l'alias automatiquement.

Please Log in or Create an account to join the conversation.

Time to create page: 0.046 seconds
Powered by Kunena Forum