2013-06-07 2 views
0

Я новичок в Magento, сейчас начал работать с ним. Мне нужно добавить настраиваемый параметр в панель администратора под вкладкой «Мета» для продукта. Мне нужно добавить параметр, в котором администратор может выбрать, чтобы этот продукт был удален из файла Generated sitemap.xml.Как добавить пользовательские настройки в мета-страницу продукта Magento?

В wordpress это будет достигнуто с помощью настраиваемого поля Meta или настраиваемого поля настройки.

Существует ли аналогичная функция в Magento, чтобы установить пользовательские настройки, а затем получить их? Я видел что-то о Custom Attributes, но оказалось, что они действительно появились в теме и панели, вместо того, чтобы работать так, как я описываю?

Пользователь Jürgen Thelen опубликовал очень полезный сниппет, размещенный ниже, который может помочь с фактической картой сайта, за исключением части.

Так что я просто нужно выяснить

  1. Как добавить параметр на вкладке Meta продукта
  2. Как получить это значение настройки в моем коде ниже, так что я могу использовать его

Вторая часть должна быть достаточно простой, создать функцию, чтобы получить все значения продукта, которые должны быть скрыты в файле sitemap.xml, а затем использовать их в коде ниже.

Моя основная проблема заключается в добавлении настроек в Метаданные области страницы администрирования продукта, любая помощь пожалуйста?

public function getCollection($storeId) 
{ 
    $products = array(); 

    $store = Mage::app()->getStore($storeId); 
    /* @var $store Mage_Core_Model_Store */ 

    if (!$store) { 
     return false; 
    } 

    $urCondions = array(
     'e.entity_id=ur.product_id', 
     'ur.category_id IS NULL', 
     $this->_getWriteAdapter()->quoteInto('ur.store_id=?', $store->getId()), 
     $this->_getWriteAdapter()->quoteInto('ur.is_system=?', 1), 
    ); 
    $this->_select = $this->_getWriteAdapter()->select() 
     ->from(array('e' => $this->getMainTable()), array($this->getIdFieldName())) 
     ->join(
      array('w' => $this->getTable('catalog/product_website')), 
      'e.entity_id=w.product_id', 
      array() 
     ) 
     ->where('w.website_id=?', $store->getWebsiteId()) 
     // --- exclude single product by its entity_id 
     ->where('e.entity_id<>152') 
     // --- exclude multiple products by their entity_id's 
     // ->where('e.entity_id NOT IN (?)', array(152, 156)) 
     ->joinLeft(
      array('ur' => $this->getTable('core/url_rewrite')), 
      join(' AND ', $urCondions), 
      array('url' => 'request_path') 
     ); 

    $this->_addFilter($storeId, 'visibility', Mage::getSingleton('catalog/product_visibility')->getVisibleInSiteIds(), 'in'); 
    $this->_addFilter($storeId, 'status', Mage::getSingleton('catalog/product_status')->getVisibleStatusIds(), 'in'); 

    $query = $this->_getWriteAdapter()->query($this->_select); 
    while ($row = $query->fetch()) { 
     $product = $this->_prepareProduct($row); 
     $products[$product->getId()] = $product; 
    } 

    return $products; 
} 

ответ

2
  1. Будьте знакомы как свойства продукта обрабатываются в Magento (product attributes). Чтобы добавить метафайлы в продукт, сначала необходимо указать create an attribute. Затем этот атрибут должен быть присвоен атрибуту вашего продукта (Adding attributes to attributesets). Будет создан набор атрибутов по умолчанию. Новое поле теперь будет отображаться в вашей конфигурации продукта.

  2. Для доступа к вашему новому атрибуту вы можете позвонить $product->getData('your_attribute') или $product->getYourAttribute() на объект продукта.

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