Я новичок в Magento, сейчас начал работать с ним. Мне нужно добавить настраиваемый параметр в панель администратора под вкладкой «Мета» для продукта. Мне нужно добавить параметр, в котором администратор может выбрать, чтобы этот продукт был удален из файла Generated sitemap.xml.Как добавить пользовательские настройки в мета-страницу продукта Magento?
В wordpress это будет достигнуто с помощью настраиваемого поля Meta или настраиваемого поля настройки.
Существует ли аналогичная функция в Magento, чтобы установить пользовательские настройки, а затем получить их? Я видел что-то о Custom Attributes, но оказалось, что они действительно появились в теме и панели, вместо того, чтобы работать так, как я описываю?
Пользователь Jürgen Thelen опубликовал очень полезный сниппет, размещенный ниже, который может помочь с фактической картой сайта, за исключением части.
Так что я просто нужно выяснить
- Как добавить параметр на вкладке Meta продукта
- Как получить это значение настройки в моем коде ниже, так что я могу использовать его
Вторая часть должна быть достаточно простой, создать функцию, чтобы получить все значения продукта, которые должны быть скрыты в файле 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;
}