2015-01-27 1 views
0

Я ищу решения для использования разных категорий для основного и мобильного магазина магазинов Magento. Я настроил отображение мобильного магазина как новую тему с строкой и исключением пользовательского агента.Как создать различные категории Magento для просмотра основного и мобильного хранилища на одном доменном имени

Как я могу показать одну категорию в главном хранилище и другую категорию в представлении мобильного магазина. Оба представления хранилища используются одним доменным именем.

ответ

1

Что я предложу, создайте атрибут категории с раскрывающимся списком. Следующий сценарий поможет вам сделать это:

SQL файл настройки:

<?php 
$installer = $this; 
$installer->startSetup(); 


$installer->addAttribute("catalog_category", "wheretoshow", array(
    "type"  => "int", 
    "backend" => "", 
    "frontend" => "", 
    "label" => "Where to Show", 
    "input" => "select", 
    "class" => "", 
    "source" => "modulename/eav_entity_attribute_source_categoryoptions", 
    "global" => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE, 
    "visible" => true, 
    "required" => false, 
    "user_defined" => false, 
    "default" => "Main Website", 
    "searchable" => false, 
    "filterable" => false, 
    "comparable" => false, 

    "visible_on_front" => false, 
    "unique"  => false, 
    "note"  => "" 

    )); 
$installer->endSetup(); 

Модель/Categoryoptions.php

<?php 
class class Packagename_Modulename_Model_Eav_Entity_Attribute_Source_Categoryoptions extends Mage_Eav_Model_Entity_Attribute_Source_Abstract 
{ 
    /** 
    * Retrieve all options array 
    * 
    * @return array 
    */ 
    public function getAllOptions() 
    { 
     if (is_null($this->_options)) { 
      $this->_options = array(

       array(
        "label" => Mage::helper("eav")->__("Mobile Website"), 
        "value" => 1 
       ), 

       array(
        "label" => Mage::helper("eav")->__("Main Website"), 
        "value" => 2 
       ), 

      ); 
     } 
     return $this->_options; 
    } 

    /** 
    * Retrieve option array 
    * 
    * @return array 
    */ 
    public function getOptionArray() 
    { 
     $_options = array(); 
     foreach ($this->getAllOptions() as $option) { 
      $_options[$option["value"]] = $option["label"]; 
     } 
     return $_options; 
    } 

    /** 
    * Get a text for option value 
    * 
    * @param string|integer $value 
    * @return string 
    */ 
    public function getOptionText($value) 
    { 
     $options = $this->getAllOptions(); 
     foreach ($options as $option) { 
      if ($option["value"] == $value) { 
       return $option["label"]; 
      } 
     } 
     return false; 
    } 

    /** 
    * Retrieve Column(s) for Flat 
    * 
    * @return array 
    */ 
    public function getFlatColums() 
    { 
     $columns = array(); 
     $columns[$this->getAttribute()->getAttributeCode()] = array(
      "type"  => "tinyint(1)", 
      "unsigned" => false, 
      "is_null" => true, 
      "default" => null, 
      "extra"  => null 
     ); 

     return $columns; 
    } 

    /** 
    * Retrieve Indexes(s) for Flat 
    * 
    * @return array 
    */ 
    public function getFlatIndexes() 
    { 
     $indexes = array(); 

     $index = "IDX_" . strtoupper($this->getAttribute()->getAttributeCode()); 
     $indexes[$index] = array(
      "type"  => "index", 
      "fields" => array($this->getAttribute()->getAttributeCode()) 
     ); 

     return $indexes; 
    } 

    /** 
    * Retrieve Select For Flat Attribute update 
    * 
    * @param int $store 
    * @return Varien_Db_Select|null 
    */ 
    public function getFlatUpdateSelect($store) 
    { 
     return Mage::getResourceModel("eav/entity_attribute") 
      ->getFlatUpdateSelect($this->getAttribute(), $store); 
    } 
} 

При получении категории на веб-интерфейсе, фильтровать те, с помощью этого атрибута в зависимости от Ваш сайт.

Смежные вопросы