Frage

Ich habe meinen Katalog erweitert und bin auf einige Lieferanten gestoßen, die genau die gleichen Produkte führen.Der einzige Unterschied besteht im Preis und in den Lagerbeständen.

Um doppelte Produkte auf meiner Website (und Suchmaschinenstrafen) zu vermeiden, habe ich eine erstellt Grouped Product mit dem Namen des Produkts und habe die 2 identischen Produkte von den 2 verschiedenen Anbietern hinzugefügt und auf „Not visible individually"

Das Problem, mit dem ich jetzt konfrontiert bin, besteht darin, dass ich durch Einstellen des Associated Products Zu "Not visible individually" bedeutet, dass der Link tot ist.

Ich möchte automatisch eine Weiterleitung zum erstellen Grouped Product für alle Associated Products

Wie erstellt man Weiterleitungen von Associated Products zum Grouped Product ?

War es hilfreich?

Lösung

Die Idee ist diese.Überprüfen Sie beim Anzeigen einer Produktseite, ob das Produkt zu einem gruppierten Produkt gehört.Wenn ja, leiten Sie zur Hauptproduktseite weiter.
Es gibt einen Haken.Ein einfaches Produkt kann Teil mehrerer gruppierter Produkte sein.In diesem Fall besteht der einfachste Ansatz darin, zur ersten gefundenen Seite umzuleiten.

Hier ist ein Code, den Sie verwenden können.
Erstellen Sie eine Erweiterung.Nennen wir es StackExchange_Grouped.

app/etc/modules/StackExchange_Grouped.xml - die Deklarationsdatei

<?xml version="1.0"?>
<config>
    <modules>
        <StackExchange_Grouped>
            <codePool>local</codePool>
            <active>true</active>
            <depends>
                <Mage_Catalog />
            </depends>
        </StackExchange_Grouped>
    </modules>
</config>

app/code/local/StackExchange/Grouped/etc/config.xml – die Modulkonfigurationsdatei, in der Sie einen Beobachter für die Produktansichtsseite deklarieren

<?xml version="1.0"?>
<config>
    <modules>
        <StackExchange_Grouped>
            <version>1.0.0</version>
        </StackExchange_Grouped>
    </modules>
    <global>
        <models>
            <stackexchange_grouped>
                <class>StackExchange_Grouped_Model</class>
            </stackexchange_grouped>
        </models>
    </global>
    <frontend>
        <events>
            <controller_action_predispatch_catalog_product_view>
                <observers>
                    <stackexchange_grouped>
                        <class>stackexchange_grouped/observer</class>
                        <method>redirectToParent</method>
                    </stackexchange_grouped>
                </observers>
            </controller_action_predispatch_catalog_product_view>
        </events>
    </frontend>
</config>

app/code/local/StackExchange/Grouped/Model/Observer.php – der Beobachter, der zur gruppierten Produktseite weiterleiten soll.

<?php
class StackExchange_Grouped_Model_Observer
{
    public function redirectToParent($observer)
    {
        $id = Mage::app()->getRequest()->getParam('id');
        $groupedParentIds = Mage::getResourceSingleton('catalog/product_link')
            ->getParentIdsByChild($id,
                Mage_Catalog_Model_Product_Link::LINK_TYPE_GROUPED);
        if (isset($groupedParentIds[0])) {
            $mainProduct = Mage::getModel('catalog/product')
                ->setStoreId(Mage::app()->getStore()->getId())->load($groupedParentIds[0]);
            Mage::app()->getResponse()->setRedirect($mainProduct->getProductUrl(), 301);
            Mage::app()->getResponse()->sendResponse();
            exit;
        }
        return $this;
    }
}

Leeren Sie den Cache und probieren Sie es aus.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top