Wenn Sie unter "Kunden verwalten" auf einen Kunden klicken und dann auf "Bestellung erstellen" klicken, möchte mein Kunde nicht, dass die deaktivierten Produkte in der Liste der Produkte angezeigt werden, die zur Bestellung hinzugefügt werden sollen. Irgendeine Idee, wie ich das ändern würde? Oder zumindest einige Hinweise zum Speicherort der Datei, lol.
Ich bearbeite die folgenden Hinweise.
protected function _prepareCollection()
{
$attributes = Mage::getSingleton('catalog/config')->getProductAttributes();
/* @var $collection Mage_Catalog_Model_Resource_Product_Collection */
$collection = Mage::getModel('catalog/product')->getCollection();
$collection
->setStore($this->getStore())
->addAttributeToSelect($attributes)
->addAttributeToSelect('sku')
->addStoreFilter()
->addAttributeToFilter('type_id', array_keys(
Mage::getConfig()->getNode('adminhtml/sales/order/create/available_product_types')->asArray()
))
->addAttributeToSelect('gift_message_available');
->addFieldToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED);
Mage::getSingleton('catalog/product_status')->addSaleableFilterToCollection($collection);
$this->setCollection($collection);
return parent::_prepareCollection();
}
Wie Sie sehen können, habe ich hinzugefügt ->addFieldToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED);
, erhalte aber folgenden Fehler:
Analysefehler: Syntaxfehler, unerwarteter T_OBJECT_OPERATOR in /home/ab71714/public_html/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Search/Grid.php in Zeile 109
Antworten:
Die Klasse, die Sie suchen, ist:
Mage_Adminhtml_Block_Sales_Order_Create_Search_Grid
Überschreiben Sie das
_prepareCollection()
und fügen Sie einen Filter hinzu$collection
:$collection->addFieldToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
Dies sollte alle deaktivierten Produkte filtern und nur aktivierte anzeigen. Getestet mit CE 1.7
Hoffe das hilft!
quelle