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.