Domanda

Sto cercando di trovare un modo per fermare gli utenti del back-end del sito da aggiungere alcuni tipi di prodotti.

Non ho bisogno di rimuovere tutte le funzionalità dei tipi di prodotto Ho solo bisogno di rimuovere le opzioni virtuali e scaricabili dalla nuova pagina del prodotto.

ho cercato di trovare dove questo è, alla fine, con un sacco di codice di scavo, ma io non sono molto aggiornato con la sezione di amministrazione di Magento come lo sono io con la costruzione di cose per il front-end.

È stato utile?

Soluzione

Mi è capitato di fare lo stesso per il mio modulo regalo-promo, nascondere i tipi di prodotto regalo, ecco il mio codice, che si può adattare alle proprie necessità.

I riscrivere questa via config.xml

....

    <catalog>
        <rewrite>
            <product_type>ProxiBlue_GiftPromo_Model_Product_Type</product_type>
        </rewrite>
    </catalog>  

  ....

ogni mia classe ha questo:

/**
 * Defines the gift type constant
 *
 * @category   ProxiBlue
 * @package    ProxiBlue_GiftPromo
 * @author     Lucas van Staden (support@proxiblue.com.au)
 */
class ProxiBlue_GiftPromo_Model_Product_Type extends Mage_Catalog_Model_Product_Type {

    const TYPE_GIFT = 'gift-';

    /**
     * Remove gift product type from admin display.
     * 
     * @return type
     */
    static public function getTypes() {
        if (is_null(self::$_types)) {
            $productTypes = Mage::getConfig()->getNode('global/catalog/product/type')->asArray();
            // remove gift type from admin displays
            //if(Mage::app()->getStore()->isAdmin() && array_key_exists(ProxiBlue_GiftPromo_Model_Product_Type::TYPE_GIFT, $productTypes)){
                unset($productTypes[ProxiBlue_GiftPromo_Model_Product_Type_Gift_Simple::TYPE_CODE]);    
                unset($productTypes[ProxiBlue_GiftPromo_Model_Product_Type_Gift_Configurable::TYPE_CODE]);
                unset($productTypes[ProxiBlue_GiftPromo_Model_Product_Type_Gift_Downloadable::TYPE_DOWNLOADABLE]);
            //}
            foreach ($productTypes as $productKey => $productConfig) {
                $moduleName = 'catalog';
                if (isset($productConfig['@']['module'])) {
                    $moduleName = $productConfig['@']['module'];
                }
                $translatedLabel = Mage::helper($moduleName)->__($productConfig['label']);
                $productTypes[$productKey]['label'] = $translatedLabel;
            }
            self::$_types = $productTypes;
        }

        return self::$_types;
    }

    /**
     * Here as the getTypes method will not be directly overwritten
     * 
     * @return type
     */
    static public function getOptionArray()
    {
        $options = array();
        foreach(self::getTypes() as $typeId=>$type) {
            $options[$typeId] = Mage::helper('catalog')->__($type['label']);
        }

        return $options;
    }

}

Altri suggerimenti

Nota. Questo esempio è quello di mostrare una sola opzione, è possibile modificarlo secondo il vostro requisito

In base alla domanda Hai solo bisogno di disattivare le opzioni dal menu a tendina in Crea Impostazioni prodotto in admin.

si può fare in questo modo:

  1. Nella /app/design/adminhtml/default/default/template/page/footer.phtml alla fine del file aggiungere il codice:

Prima condizione add php per influenzare solo la pagina corrente.


 if($this->getRequest()->getActionName() == 'new'){ ?>

Poi comprende l'ultimo jquey e aggiungere il seguito script.


 jQuery.noConflict();
 jQuery(document).ready(function($){
   $('.adminhtml-catalog-product-new #product_type option[value=downloadable]').attr('selected','selected');
 });

Chiudere la condizione php.

  1. Goto /skin/adminhtml/default/default/custom.css e CSS:

Aggiungere il css:

 #product_type > option {
    display: none;
}
#product_type > option:last-child {
    display: block;
}

Vi mostrerà opzione solo scaricabile in giù goccia.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top