我是 Magento 的新手,今天才开始使用它。我需要在产品的元选项卡下的管理面板中添加一个自定义选项。我需要添加一个选项,管理员可以选择从 Generated sitemap.xml 文件中删除该产品。
在 wordpress 中,这将通过自定义元字段或自定义设置字段来实现。
Magento 中是否存在类似的功能来设置自定义设置然后检索它们?我看到了一些关于自定义属性的东西,但似乎它们实际上出现在主题和面板中,而不是按照我描述的方式工作?
用户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;
}