Question

Je construis un site Web, et installé Magento dans le répertoire / boutique / sous-répertoire. Je voudrais intégrer les principales catégories dans le menu de mon site non-Magento, vous pouvez naviguer directement dans la catégorie. Pour cela, je dois les noms des catégories et URL.

Les catégories de Magento sont:

  • Modèles
    • Couleur
    • Thème
    • Général
  • Autres produits

J'ai d'abord besoin d'obtenir une liste des catégories ci-dessous les modèles de haut niveau, j'ai donc écrit le code suivant. Il est mon premier essai avec l'intégration avec Magento, alors soyez gentil :-):

<?php
require_once dirname(__FILE__).'/shop/app/Mage.php';
umask(0);
Mage::app('default');

$helper     = Mage::helper('catalog/category');
$collection = $helper->getStoreCategories();
foreach ($collection as $catalogArray) {
    if ($catalogArray->getName() == "Templates") {
        foreach (explode(",", $catalogArray->getChildren()) as $category) {
            $_category = Mage::getModel('catalog/category')->load($category);
            if($_category->getIsActive()) {
                $caturl = $_category->getUrl();
                $catname = $_category->getName();
            }
            echo "<pre>";
            var_dump($caturl);
            echo "</pre>";

            echo "<pre>";
            var_dump($catname);
            echo "</pre>";
        }
    }
}
?>

obtient correctement les noms et les catégories, mais les rendements URL de celui-ci sont l'URL complète absolue de, comme « http://example.com/shop/templates/theme.html ".

Tout d'abord, comment puis-je récupérer URL relative de Magento?

En second lieu, l'URL générée semble être correcte que si je mets le web / unsecure / base_url mise à la http: //example.com/shop/ . Si je mets cela {{}} au lieu base_url (que nous préférons au cours du développement puisque nous utilisons d'hébergement virtuel basé sur svn copies de travail), le / boutique / pièce est manquante, à savoir: « http://example.com/templates/theme.html ".

Une idée pourquoi?

Était-ce utile?

La solution

Je pense que vous pouvez réaliser tous vos besoins en jouant avec les paramètres dans le système> Configuration> Web

La première chose que je vais essayer est couchait URL de base (sécurisés et non sécurisés si nécessaire) pour / (slash), puis le système va> Gestion de cache> reconstruire réécritures d'URL du catalogue.

Si cela ne fonctionne pas, jouer avec les paramètres, le pari vous pouvez l'obtenir pour travailler. Attention cependant, il fera urls magento mettre relatifs dans les aliments de base google etc = mauvais! Donc, ne pas le faire dans la production.

Ma copie dev est à l'œuvre, inacessible d'ici, ne peut donc pas essayer pour vous.

En outre, pour votre script ci-dessus, vous pouvez essayer:

$url = "/shop/" . $_category->getUrlKey() . '.html';

(vous ne pouvez pas besoin du bit html à la fin, dépend de votre config)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top