Fuera de la caja, no, no hay forma de excluir ciertos productos del mapa del sitio generado por la Catalog -> Google Sitemapfunción de Magento .
Si iba a hacer esto programáticamente, las versiones modernas de Magento (marcadas en la rama 1.7.x, esto podría estar en versiones anteriores / EE) usan la siguiente clase de modelo de recurso
Mage_Sitemap_Model_Resource_Catalog_Product
para buscar una lista de productos.
#File: app/code/core/Mage/Sitemap/Model/Sitemap.php
$collection = Mage::getResourceModel('sitemap/catalog_product')->getCollection($storeId);
Este no es un modelo estándar de Magento CRUD y getCollectionno devuelve un objeto de colección. En su lugar, getCollectionconsulta manualmente la base de datos para estos productos.
Si fuera a implementar una funcionalidad que impidiera que ciertos productos aparecieran en el mapa del sitio, intentaría
Una clase reescribe el getCollectionmétodo que llama a parent::getCollection, y luego filtra manualmente cualquier producto de la matriz
Una reescritura de clase en la _addFilterque se llama al método principal :: _ addFilter, y luego agrega una o más cláusulas WHERE adicionales _selectpara excluir los productos específicos. Es un truco, pero es el único método en el que tiene acceso al _selectobjeto utilizado para consultar la base de datos. Idealmente, desearía tener algún tipo de indicador global / estático, por lo que solo agregó sus nuevas cláusulas WHERE una vez.