문제

나는 카탈로그를 확장해 왔고 정확히 동일한 제품을 취급하는 몇몇 공급업체를 만났습니다.유일한 차이점은 가격과 재고 수준입니다.

내 웹사이트에서 중복된 제품을 방지하고 검색 엔진 처벌을 방지하기 위해 Grouped Product 제품 이름과 함께 2개의 다른 공급업체의 동일한 제품 2개를 추가하고 "로 설정했습니다.Not visible individually"

지금 내가 직면한 문제는 Associated Products 에게 "Not visible individually"라는 말은 링크가 끊어진다는 것입니다.

내가 하고 싶은 것은 자동으로 리디렉션을 생성하는 것입니다. Grouped Product 모든 Associated Products

리디렉션을 어떻게 생성합니까? Associated Products ~로 Grouped Product ?

도움이 되었습니까?

해결책

아이디어는 이것이다.제품 페이지를 볼 때 해당 제품이 그룹화된 제품에 속하는지 확인하세요.그렇다면 기본 제품 페이지로 리디렉션하세요.
문제가 있습니다.단순 제품은 둘 이상의 그룹화된 제품의 일부가 될 수 있습니다.이 경우 가장 간단한 접근 방식은 발견된 첫 번째 항목으로 리디렉션하는 것입니다.

다음은 사용할 수 있는 몇 가지 코드입니다.
확장 프로그램을 만듭니다.그것을 부르자 StackExchange_Grouped.

app/etc/modules/StackExchange_Grouped.xml - 선언 파일

<?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 - 제품 보기 페이지에 대한 관찰자를 선언하는 모듈 구성 파일

<?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 - 그룹화된 제품 페이지로 리디렉션되어야 하는 관찰자입니다.

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

캐시를 지우고 사용해 보세요.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top