Fuera de la caja, no, no hay forma de excluir ciertos productos del mapa del sitio generado por la Catalog -> Google Sitemap
funció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 getCollection
no devuelve un objeto de colección. En su lugar, getCollection
consulta 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 getCollection
método que llama a parent::getCollection
, y luego filtra manualmente cualquier producto de la matriz
Una reescritura de clase en la _addFilter
que se llama al método principal :: _ addFilter, y luego agrega una o más cláusulas WHERE adicionales _select
para excluir los productos específicos. Es un truco, pero es el único método en el que tiene acceso al _select
objeto 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.