Toujours afficher l'URL complète, y compris les catégories de produits


8

Pour notre boutique en ligne Magento (1.7.0.2), nous essayons d'optimiser la structure des URL. Nous avons déjà réussi à améliorer certaines choses, mais dans un cas, nous n'avons pas réussi. Nous voulons utiliser une URL complète (y compris les catégories) pour tous nos produits. Par exemple:

  • www.website.com/products/best-products/product
  • ou: www.website.com/products/best-products pour une page de catégorie

Cela fonctionne bien lorsque vous parcourez les catégories et utilisez le fil d'Ariane, mais pas lors de la recherche. Il utilise ensuite toujours www.website.com/product comme URL, probablement parce qu'un produit peut être dans plusieurs catégories et qu'il ne sait pas quelle catégorie utiliser dans les résultats de recherche.

Y a-t-il un moyen de forcer cela? Pour le faire utiliser en quelque sorte la "première" catégorie, ou même lui faire utiliser une catégorie par défaut que vous pouvez choisir? Je suis développeur, donc je suis prêt à apporter des modifications au code, mais seulement s'il n'y a pas d'autre moyen / plus fiable. Tous les conseils ou astuces sont les bienvenus, merci d'avance!

Réponses:


4

Ce que vous voulez ne peut pas être atteint - afaik.

Le problème est que magento est prévu avec "produit dans de nombreuses catégories". Le problème est maintenant que magento ne préfère aucune catégorie et qu'il ne montre aucune catégorie.

Les catégories sont utilisées, lorsque vous cliquez à travers les catégories, c'est le seul endroit (afaik) où les réécritures de catégorie sont utilisées.

Mais je pense que vous pouvez réaliser ce que vous voulez, en piratant un peu le système de réécriture et assurez-vous simplement de charger une réécriture de catégorie et non celle sans toutes les catégories.

Le problème suivant est alors que vous devez vous assurer que Google obtient toujours à chaque fois la même URL canonique ou vous aurez un problème avec le contenu en double ...

Et la dernière pensée que j'ai en tête: je ne sais pas si c'est une bonne idée d'un point de vue SEO. Je ne suis pas un expert en référencement, mais quelqu'un m'a dit que plus l'URL était courte, mieux c'était ...


1

L'URL du produit est imprimée à partir de:
Mage_Catalog_Model_Product::getProductUrl
cette méthode vérifie si l'URL doit inclure la catégorie à l'aideMage::registry('current_category')

Mais les collections chargent normalement les réécritures d'URL dans une requête unique (méthode de vérification Mage_Catalog_Model_Resource_Product_Collection::addUrlRewrite($categoryId = ''))
Et Mage_Catalog_Model_Product::getProductUrlutilise ensuite ce 'request_path "à partir des données du produit $.

Donc, une astuce possible pourrait être quelque chose comme ceci:

        // if we are in search results
    if( ! Mage::registry('current_category')){
        $myDesiredCategoryId = current($product->getCategoryIds()); // you could just use the first category registered with this product or define some other strategy
        $canonicalCategory = Mage::getModel('catalog/category')->load($myDesiredCategoryId);
        Mage::register('current_category', $canonicalCategory);
        $product->setRequestPath(null);
        $productUrlWithCategory = $product->getUrlModel()->getUrl($product);
        Mage::unregister('current_category');
    }

Ce n'est pas le moyen le plus rapide (chaque produit de votre collection doit maintenant charger la réécriture de l'URL dans une requête séparée) mais peut-être le plus simple si vous recherchez une solution rapide


0

avec Magento 2. Nous avons cette option sur le backend où vous pouvez configurer au lieu de modifier le routage url


-1

Je suis assez sûr que ce dont vous avez besoin peut être atteint par le paramètre de configuration du système Use Categories Path For Product URLs. Cela peut être trouvé sous System->Configuration->Catalog->Catalog->Search Engin Optimization. Après avoir réglé cela, je pense que vous devrez réindexer.

J'espère que cela t'aides.


Non, ce paramètre ne fonctionne que si la catégorie actuelle est définie (par conséquent, si vous ouvrez le produit à partir d'une page de catégorie).
Simon
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.