Override eines Ext.js Stores im Plugin

Moin,

um die ArticleSearch anzupassen und das limit von (default) 10  auf eine beliebige Zahl zu erhöhen, kann man folgenden Store anpassen: ‘Shopware.apps.Base.store.Article’.

Bei einem Update gehen diese Änderungen jedoch verloren, wenn der Store nicht über ein Plugin explizit überschrieben wird. Da der Store selber aber keinem block zugeordnet wird, kann ich ihn nicht überschreiben. Somit habe ich versucht, einen eigenen Store anzulegen und diesen in der view ‘Shopware.backend.article.crossselling.base’ zu nutzen.

Folgendermaßen sieht der erstellte Store aus: 

Ext.define('Shopware.apps.Romoma.store.RomomaArticle', {

    /**
     * Defines an alternate name for this class.
     */
    alternateClassName: 'Shopware.store.RomomaArticle',

    /**
     * Define that this component is an extension of the Ext.data.Store
     */
    extend: 'Ext.data.Store',

    /**
     * Define unique store id to create the store by the store manager
     */
    storeId: 'base.RomomaArticle',

    /**
     * Define how much rows loaded with one request
     */
    pageSize: 50,

   /**
    * Auto load the store after the component
    * is initialized
    * @boolean
    */
    autoLoad: false,

    /**
     * Enable remote sorting
     */
    remoteSort: true,

    /**
     * Enable remote filtering
     */
    remoteFilter: true,
   /**
    * Define the used model for this store
    * @string
    */
    model : 'Shopware.apps.Base.model.Article',

    /**
     * Configure the data communication
     * @object
     */
    proxy:{
        type:'ajax',

        /**
         * Configure the url mapping for the different
         * store operations based on
         * @object
         */
        url:'{url controller="base" action="getArticles"}',

        /**
         * Configure the data reader
         * @object
         */
        reader:{
            type:'json',
            root:'data',
            totalProperty:'total'
        }
    }
});

In der View base.js versuche ich folgendermaßen diesen zu nutzen:

//{namespace name=backend/article/view/main}
//{block name="backend/article/view/crossseling/base" append}

Ext.define('Shopware.apps.Romoma.view.crossselling.Base', {
    override: 'Shopware.apps.Article.view.crossselling.Base',


    /**
     * Creates a special product search field for the form of the component.
     *
     * @returns { Shopware.form.field.ArticleSearch }
     */
    createProductSearch: function() {
        var me = this;

        return me.productSearch = Ext.create('Shopware.form.field.ArticleSearch', {
            name: 'number',
            fieldLabel: me.systemTexts.productSearch,
            returnValue: 'name',
            hiddenReturnValue: 'number',
            articleStore: Ext.create('Shopware.store.RomomaArticle'),
            width: '100%',
            anchor: '100%',
            formFieldConfig: {
                labelWidth: 155
            },
            allowBlank: false,
            getValue: function() {
                return this.getSearchField().getValue();
            },
            setValue: function(value) {
                this.getSearchField().setValue(value);
            }
        });
    },

});
//{/block}

Hier die app.js:

// {block name="backend/article/application"}
// {$smarty.block.parent}
// {include file="backend/romoma/base/store/article.js"}
// {/block}

Und der Subscriber des Plugins:

pluginDirectory = $pluginDirectory;
    }

     /**
     * {@inheritdoc}
     */
    public static function getSubscribedEvents()
    {
        return [
            'Enlight_Controller_Action_PostDispatchSecure_Backend_Article' => 'onArticlePostDispatch'
        ];
    }

    public function onArticlePostDispatch(\Enlight_Event_EventArgs $args)
    {
        /** @var \Shopware_Controllers_Backend_Article $controller */
        $controller = $args->getSubject();

        $view = $controller->View();
        $request = $controller->Request();

        $view->addTemplateDir($this->pluginDirectory . '/Resources/views');

        if($request->getActionName() == 'index'){
            $view->extendsTemplate('backend/romoma/app.js');
        }

        if ($request->getActionName() == 'load') {
            $view->extendsTemplate('backend/romoma/article/view/detail/properties.js');
            $view->extendsTemplate('backend/romoma/article/view/images/list.js');
            $view->extendsTemplate('backend/romoma/article/view/crossselling/base.js');
            $view->extendsTemplate('backend/romoma/base/store/article.js');
            $view->extendsTemplate('backend/romoma/base/component/Shopware.form.field.ArticleSearch.js');
        }
    }
}

 

Wie gesagt führt es nicht zu dem gewünschten Resultat, wenn der Store ersetzt wird.

Der Fehler "shopware.app.article SyntaxError: Unexpected token ‘:’ " tritt im Backend auf, wenn die Artikelseite aufgerufen wird!

Wo liegt der Fehler bzw. was übersehe ich?