2012-12-24 4 views
-2

주 메뉴의 각 카테고리 드롭 다운 목록에 브랜드 목록을 추가하려고합니다. 나는 이것이 '메가 메뉴'로 간주 될 것이라고 생각한다.Magento는 카테고리 드롭 다운 메뉴에 브랜드 목록을 추가합니다.

예를 들어, 메인 카테고리 위로 마우스를 가져 가면 드롭 다운 메뉴에 하위 카테고리를 표시 할뿐만 아니라이 카테고리 내의 모든 다른 브랜드를 표시합니다.

브 랜드는 두 가지 방법으로 설정됩니다 :

  1. 모든 제품 속성 '브랜드'를 가지고있다. 따라서 우리는 카테고리 내의 모든 제품을 얻고이 카테고리의 제품과 관련된 모든 브랜드 목록을 표시하려고 할 수 있습니다. 이렇게하면 해당 메뉴 항목을 선택하면 해당 카테고리의 항목 및 해당 브랜드 항목의 필터가 표시되도록 계층화 된 탐색을 통합해야합니다.

  2. 이 방법이 더 쉬울 것이라고 생각합니다. 각 브랜드에는 이미 자체 카테고리가 있으며, 각 제품은 주요 카테고리뿐 아니라 관련 브랜드 카테고리에도 있습니다. 이것은 원래 모든 브랜드의 큰 목록을 보여줄 수 있도록 수행되었습니다. 네비게이션 루프 내부의 Magento에서 '다른 카테고리 선택'기능이 있습니까? 예 : 항목이 범주 A에있는 경우 드롭 다운 목록에는 모든 하위 범주뿐만 아니라 제품에서 선택된 다른 관련 최상위 범주가 표시됩니다.

내가 Navigation.php (마 젠토 1.6) 수정과 관련된 다양한 솔루션을 시도했지만 난 단지는 상점의 모든 브랜드를 표시하는 얻을 수뿐만 아니라 특정 카테고리 내에서 브랜드. 아래를 참조 코드 :

// Navigation.php code 
// render children 
    $htmlChildren = ''; 
    $j = 0; 
    foreach ($activeChildren as $child) { 
    $htmlChildren .= $this->_renderCategoryMenuItemHtml(
    $child, 
    ($level + 1), 
    ($j == $activeChildrenCount - 1), 
    ($j == 0), 
    false, 
    $outermostItemClass, 
    $childrenWrapClass, 
    $noEventAttributes 
    ); 
    $j++; 
    } 
    if (!empty($htmlChildren)) { 
    if ($childrenWrapClass) { 
    $html[] = '<div class="' . $childrenWrapClass . '">'; 
    } 
    $html[] = '<ul class="level' . $level . '">'; 
    $html[] = $htmlChildren; 

    // My modifications start here 

    $product = Mage::getModel('catalog/product'); 
    $attributes = Mage::getResourceModel('eav/entity_attribute_collection') 
    ->setEntityTypeFilter($product->getResource()->getTypeId()) 
    ->addFieldToFilter('attribute_code', 'brands'); 
    $attribute = $attributes->getFirstItem()->setEntity($product->getResource()); 
    $manufacturers = $attribute->getSource()->getAllOptions(false); 
    $html[] = '<ol id="nav-drop-brands">'; 
    foreach ($manufacturers as $manufacturer) { 
    $html[] = '<li><a href="http://www.domain.com/catalogsearch/advanced/result?manufacturer[]='; 
    $html[] = $manufacturer['value']; 
    $html[] = '">'; 
    $html[] = $manufacturer['label']; 
    $html[] = '</a></li>'; 
    } 
    $html[] = '</ol>'; 

    // end of my modifications 

    $html[] = '</ul>'; 
    if ($childrenWrapClass) { 
    $html[] = '</div>'; 
    } 
    } 

    $html[] = '</li>'; 

    $html = implode("\n", $html); 
    return $html; 
    } 

답변

-1

당신이로 갈 수 있습니다
다음 하위 하위 카테고리
을 (이 카테고리에 불과하다 당신의 모든 브랜드 이름이 될 것입니다 추가 다음 하위 카테고리를 추가 카테고리
추가
only)

이러한 범주를 검색하려면 this 링크를 방문하십시오.

희망이 도움이됩니다.

+0

안녕하세요 Nikhil - 답변 해 주셔서 감사합니다. 현재 브랜드는 이미 두 가지 방법으로 설정되어 있습니다 (자세한 정보를 제공하기 위해 위의 질문을 업데이트했습니다). 나는 우리가 그들 모두를 설정할 수있을 것이라고 생각하지 않는다. 그리고 그 가게는 이미 1000 개 이상의 아이템을 가지고 있기 때문에 서브 - 서브 카테고리로도 사용할 수있을 것이다. – ronnz

+0

이것은 나쁜 해결책입니다! 제조업체 속성을 사용하여 메뉴를 작성해야합니다. 다음을 참조하십시오 : http://www.magentocommerce.com/wiki/5_-_modules_and_development/navigation/add_dropdown_list_of_manufactures_or_another_attribute – karantan

+0

@karantan 메뉴를 추가 한 후 다음 단계는 무엇입니까? –