Kundengruppe als Spalte im Backend in Bestellübersicht?

Guten Abend,

ich bräuchte die Kundengruppe als Spalte in der Bestellübersicht im Backend. Komme aber irgendwie nicht weiter.

Ich hab in der Datei httpdocs/themes/Backend/ExtJs/backend/order/view/list/list.js die Zeile 84

customerEmail:’{s name=column/customer_email}E-Mail{/s}’,

gegen

customerGroup:’{s name=column/customer_group}Kundengruppe{/s}’,

ersetzt, da die Spalte mit der Emailadresse für uns da sinnlos ist. Jetzt hab ich schon mal in der Listenspalte oben “Kundengruppe” stehen. So weit so gut :wink:

//{block name="backend/order/view/list/list"}
Ext.define('Shopware.apps.Order.view.list.List', {

....

    snippets:{
        columns: {
            number:'{s name=column/number}Order number{/s}',
            invoiceAmount:'{s name=column/amount}Amount{/s}',
            orderTime:'{s name=column/order_time}Order time{/s}',
            transactionId:'{s name=column/transaction}Transaction{/s}',
            dispatchName:'{s name=column/dispatch_name}Shipping{/s}',
            shopName:'{s name=column/shop}Shop{/s}',
            customer:'{s name=column/customer}Customer{/s}',
Zeile 84 customerGroup:'{s name=column/customer_group}Kundengruppe{/s}',
            paymentName:'{s name=column/payment_name}Payment{/s}',
            orderStatus:'{s name=column/order_status}Order Status{/s}',
            paymentStatus:'{s name=column/payment_status}Payment Status{/s}',
            openCustomer: '{s name=column/open_customer}Open customer{/s}',
            deleteOrder: '{s name=column/delete_order}Delete order{/s}',
            detail: '{s name=column/detail}Show details{/s}'
        },

In der gleiche Datei habe ich dann in Zeile ca 328 - 331 

                header: me.snippets.columns.customerEmail,
                dataIndex: ‘customerEmail’,
                flex:2,
                renderer: me.customerEmailColumn

gegen

                header: me.snippets.columns.customerGroup,
                dataIndex: ‘customerGroup’,
                flex:2,
                renderer: me.customerGroup

ersetzt.  so wie es auch in der Datei httpdocs/themes/Backend/ExtJs/backend/customer/view/list/list.js drin steht. Nur leider funktioniert das nicht so wie ich mir das dachte, nämlich garnicht 

Hab auch schon mehrere Variant mit Id und customer_group und so probiert. Geht aber auch nicht.

Was hab ich übersehen, was mache ich falsch? Ich bin noch nicht so fit was sowas angeht, also habt bitte etwas verständnis für meine Unwissenheit.

Ich weiß, dass ist auch nicht updatesicher und so. Ein Plugin für sowas gibt es leider auch nicht.

Vielleicht kann mir ja irgendeiner der Profis hier einen kleinen Tipp geben und mich auf den richtigen Weg schuppsen und mir sagen was ich falsch mache?

Danke schon mal

Gruß Oli

Das würde mich auch interessieren, oder hast du eine lösung gefunden?

Hallo,

es nützt Dir nichts nur oberflächlich was auszutauschen. Es fehlen noch die Daten an sich. Du müsstest also das ExtJS für die Liste zuständige Model noch ändern, sodass es Deine neue Spälte enthält.

Wie so ziemlich jede Backend View hat auch diese Liste ein Model, das per Ajax Request vom Backend Modul befüllt wird => heißt: Richtige Backend Action finden, prüfen, ob mit dem SQL / DQL Query bereits alles vorhanden ist, und wenn nicht: Backend Action anpassen. Falls es schon vorhanden ist, dann musst Du einfach nur noch dem Model mitteilen, welchen Daten Schlüssel es für Deine neuen Daten verwenden soll - und schon wird das ganze auch befüllt.

 

 

MFG

 

derwunner

1 Like

Das würde mich auch Interessieren.
Welche Datei ist für die Ausführung der SQL Befehle zuständig? (die Backend Action) Hat einer eine Idee, wie man die Bestellübersicht im Backend erweitert?

 

Mit freundlichen Grüßen
 

Plugin Beispiel: 

class YourClass extends Plugin
{
  
  public static function getSubscribedEvents()
  {
    return [
      'Enlight_Controller_Action_PostDispatch_Backend_Customer' => 'onPostDispatchBackendCustomer',
    ];
  }
  
  public function onPostDispatchBackendCustomer(\Enlight_Event_EventArgs $args)
  {
    $controller = $args->getSubject();
    $view = $controller->View();
    $request = $controller->Request();
 
    $view->addTemplateDir(dirname( __FILE__ ) . '/Views/');
    if ($request->getActionName() == 'load') {
      $view->extendsTemplate('backend/customer/view/main/customerList.js');
    }

  }
  
}

 

und js

//{block name="backend/customer/view/main/customer_list"}
// {$smarty.block.parent}

Ext.define('Shopware.apps.BackendCustomerList.view.main.CustomerList', {
  
  override: 'Shopware.apps.Customer.view.main.CustomerList',

  configure: function() {
    console.log('hello');
  }

});

//{/block}