Zugriff auf Unterkategorie ohne übergeordnete Kategorie


7

Wir haben folgende Kategorie und Unterkategorie in unserem Shop.

Category: http://yoursite.com/category.html

Sub-category: http://yoursite.com/category/sub-category.html

Ist es möglich, über die folgende URL auf die Seite mit der Auflistung der Unterkategorien zuzugreifen?

Sub-category: http://yoursite.com/sub-category.html

Fall 1: Zugriff auf die Seite mit der Auflistung der Unterkategorien, auch wenn die Hauptkategorie-ID deaktiviert ist

Fall 2: Greifen Sie auf die Auflistungsseite der Unterkategorie zu, ohne die Hauptkategorie in der URL zu verwenden

Wird mein Produkt auch dann angezeigt, wenn seine Kategorie-ID deaktiviert ist, wenn es einem Produkt zugewiesen ist sub-categoryund die Sichtbarkeit auf festgelegt Catalogist?

Wie kann ich das erreichen?

Vielen Dank

Antworten:


2

In Admin:

Admin -> System -> Konfiguration -> Katalog -> Suchmaschinenoptimierungen -> Übergeordneten Kategoriepfad für Kategorie-URLs verwenden (auf NO gesetzt)

Programmatisch:

Öffnen Sie die Klasse Mage_Catalog_Model_Urlund kommentieren Sie die folgende Zeile

//if (null === $parentPath) {
//    $parentPath = $this->getResource()->getCategoryParentPath($category);
//}
//elseif ($parentPath == '/') {
    $parentPath = '';
//}

unter function getCategoryRequestPath($category, $parentPath)

Sie können jederzeit ein lokales Element Ihrer Datei erstellen, um ein Übersteuern der Kerndateien zu vermeiden


1
in magento ce Use Parent Category Path for Category URLsOption ist nicht da
— Visakh B Sujathan


0

Ich kann Ihnen empfehlen, die folgende Standardfunktion auszuprobieren

Entfernen Sie den Pfad der übergeordneten Kategorie aus der URL und ändern Sie ihn von

http://mysite.com/category/sub-category.html bis http://mysite.com/sub-category.html

VERWENDUNGSZWECK :

Gehen Sie zum Magento Admin Panel -> System -> Konfiguration -> Katalog -> SEO-Optionen

Wählen Sie Ja oder Nein aus " Use Parent Category Path for Category URLs"

Aktualisieren Sie den URL-Index der Kategorie

Option JA => http://mysite.com/category/sub-category.html

Option NO => http://mysite.com/sub-category.html

Bearbeiten

    <global>
        <models>
             <catalog>
                <rewrite>
                    <product_url>YourNamespace_Catalog_Model_Product_Url</product_url>
                </rewrite>
            </catalog>
        </models>
   </global>

Sie können versuchen, die URL für die Kategorie neu zu schreiben. hoffe, das könnte Arbeit für dich sein. Ich bin mir nicht 100% sicher, ob diese Modle-URL neu geschrieben wurdemagento1.7

Hoffe das wird dir sicher helfen.


Liyakat hat recht.
— Amit Bera

@liyakat, Use Categories Path for Product URLseingestellt auf yes. Kann die Option nicht sehen, die Sie gesagt haben, dh 'Use Parent Category Path for Category URLs'. Version ist1.7.0.2
— Lazar

Was soll ich tun, wenn ich in meinem Magier-Administrator keine solche Option sehe?
— Lazar

@ Lazar, siehe meine aktualisierte Antwort. Und Sie können notwendige Änderungen im URL-Modell des Katalogs
— liyakat

Wo ist diese Einstellung? (kann es nicht in Magento 1.8.1 finden)
— snh_nl

0

So entfernen Sie den Pfad der übergeordneten Kategorie aus der URL der
untergeordneten Kategorie: Schreiben SieMage_Catalog_Model_Url
die Methode zum Überschreiben von Klassen public function getCategoryRequestPath($category, $parentPath)wie folgt neu

public function getCategoryRequestPath($category, $parentPath)
{
    $storeId = $category->getStoreId();
    $idPath = $this->generatePath('id', null, $category);
    $suffix = $this->getCategoryUrlSuffix($storeId);

    if (isset($this->_rewrites[$idPath])) {
        $this->_rewrite = $this->_rewrites[$idPath];
        $existingRequestPath = $this->_rewrites[$idPath]->getRequestPath();
    }

    if ($category->getUrlKey() == '') {
        $urlKey = $this->getCategoryModel()->formatUrlKey($category->getName());
    } else {
        $urlKey = $this->getCategoryModel()->formatUrlKey($category->getUrlKey());
    }

    $categoryUrlSuffix = $this->getCategoryUrlSuffix($category->getStoreId());
    // Code commented to remove parent category path from child category path
    //if (null === $parentPath) {
    //$parentPath = $this->getResource()->getCategoryParentPath($category);
    //}
    //elseif ($parentPath == '/') {
    $parentPath = '';
    //}
    $parentPath = Mage::helper('catalog/category')->getCategoryUrlPath($parentPath,
        true, $category->getStoreId());

    $requestPath = $parentPath . $urlKey . $categoryUrlSuffix;
    if (isset($existingRequestPath) && $existingRequestPath == $requestPath . $suffix) {
        return $existingRequestPath;
    }

    if ($this->_deleteOldTargetPath($requestPath, $idPath, $storeId)) {
        return $requestPath;
    }

    return $this->getUnusedPath($category->getStoreId(), $requestPath,
        $this->generatePath('id', null, $category)
    );
}


Unter Code geändert

if (null === $parentPath) {
    $parentPath = $this->getResource()->getCategoryParentPath($category);
} elseif ($parentPath == '/') {
    $parentPath = '';
}

zu

//if (null === $parentPath) {
//    $parentPath = $this->getResource()->getCategoryParentPath($category);
//} elseif ($parentPath == '/') {
    $parentPath = '';
//}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.