Sie möchten keine deaktivierten Produkte sehen, wenn Sie eine Bestellung vom Administrator aus erstellen

7

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

CaitlinHavener
quelle
2
Bearbeiten Sie den Kern nicht. Wenn Sie müssen, kopieren Sie die Datei und den vollständigen Pfad in app / code / local.
Philwinkle

Antworten:

4

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!

B00MER
quelle
Ich bekomme eine Fehlermeldung. Siehe oben. Vielen Dank für deine Hilfe!
CaitlinHavener
Oh warte, ich bin so ein Dummy! es muss nach Mage :: getSingleton ('catalog / product_status') gehen. Funktioniert jetzt! Vielen Dank!!!
CaitlinHavener