Pregunta

Quiero anular la funcionalidad por defecto de tiendas (la adición de algunos campos como la comisión, la ubicación de entregar etc), pero no soy capaz de configurarlo. Mi archivo de configuración como sigue:

    <config>
  ...

    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <store before="Mage_Adminhtml">Mycompany_Store_Adminhtml_Store</store>
                    </modules>
                </args>
            </adminhtml>
        </routers>
</admin>
 </global>
....
 </config>

no funciona en absoluto.

¿Fue útil?

Solución 3

Finalmente llegué a una solución ..

<global>

        <rewrite>        
            <mycompany_store_adminhtml_system_storecontroller>
                <from><![CDATA[#^/admin/system_store/#]]></from> <!-- Mage_Adminhtml_System_StoreController  -->
                <to>/store/adminhtml_system_store/</to> <!-- Mycompany_Store_Adminhtml_System_StoreController  -->
            </mycompany_store_adminhtml_system_storecontroller>
        </rewrite>
</global>

Otros consejos

Con mi comentario sobre la respuesta de Mario, su solución debe trabajar.

Sin embargo, C / debería estar haciendo esto usando system.xml, que le permite especificar los campos de configuración del sistema. A continuación, puede leer estos valores utilizando Mage::getStoreConfig() y realizar la lógica que necesita.

<sections>
    <general>
        <groups>
            <store_information>
                <fields>
                    <commission>
                        <label>Commission</label>
                        <frontend_type>text</frontend_type>
                        <sort_order>10</sort_order>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
                        <show_in_store>1</show_in_store>
                    </commission>
                </fields>
            </store_information>
        </groups>
    </general>
</sections>

Trate con esta configuración:

<admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <Mycompany_Store before="Mage_Adminhtml">Mycompany_Store_Adminhtml</Mycompany_Store>
                    </modules>
                </args>
            </adminhtml>
        </routers>
</admin>

El controlador debe estar en este archivo: Mycompany/Store/controllers/Adminhtml/System/StoreController.php y debería tener este aspecto:

<?php
require_once 'Mage/Adminhtml/controllers/System/StoreController.php';
class Mycompany_Store_Adminhtml_System_StoreController extends Mage_Adminhtml_System_StoreController{
    //your methods here
}

Así es como se debe reemplazar el controlador de tienda. Lo que no entiendo es por qué es necesario hacer esto. Se pueden añadir todos los valores que desee en la> configuración de la sección sistema- mediante el archivo system.xml de uno de sus módulos y se puede leer fácilmente con Mage::getStoreConfig('path/to/setting').
o si desea campos adicionales en la entidad tienda sólo añadirlos en la mesa y core_store campos para ellos en la forma de añadir / editar tienda. Aquí es cómo se puede hacer eso .

Realmente recomiendo poner sus valores en la sección de configuración.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top