Question

J'ai été l'expansion de mon catalogue et ont peu de fournisseurs qui offrent exactement les mêmes produits.La seule différence est le prix et les niveaux de stock.

Pour éviter de dupliquer des produits sur mon site web (moteurs de recherche et de sanctions), j'ai créé un Grouped Product avec le nom du produit et ont ajouté les 2 produits identiques à partir du 2 fournisseurs différents et ont mis à "Not visible individually"

Le problème que j'ai maintenant faire face est que par la définition de la Associated Products d' "Not visible individually"c'est que le lien soit mort.

Ce que je voudrais faire est de créer automatiquement une redirection vers la Grouped Product pour tous Associated Products

Comment voulez-vous créer des redirections de Associated Products à l' Grouped Product ?

Était-ce utile?

La solution

L'idée est de cette.Lors de l'affichage d'une page du produit, vérifier pour voir si le produit appartient à un groupe de produits.Si oui, la redirection vers le produit principal de la page.
Il y a un hic.Un simple produit peut faire partie de plus d'un groupé de produits.Dans ce cas, l'approche la plus simple est de rediriger le premier trouvé.

Voici un code que vous pouvez utiliser.
Créer une extension.Appelons ça de la StackExchange_Grouped.

app/etc/modules/StackExchange_Grouped.xml - le dossier de déclaration

<?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 - le fichier de configuration du module où vous déclarez un observateur de la vue du produit page

<?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 - l'observateur qui doit rediriger vers la groupés page du produit.

<?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;
    }
}

Effacer la mémoire cache et de lui donner un aller.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top