[v6.3.x] admin/sw-order-list.html.twig Anpassung geht nicht mehr

Tach zusammen,

folgende Template-Anpassung geht bis 6.2.3 ohne Probleme:

{% block sw_order_list_content_slot %}
    

    {% block sw_order_list_grid %}
        {% parent %}
    {% endblock %}

{% endblock %}

{% block sw_order_list_grid_columns %}
    {% block sw_order_list_grid_columns_documents %}
        
            {{ getDocument(item, type) }}
        
    {% endblock %}

    {% block sw_order_list_grid_columns_shipping_costs %}
        
            {{ item.shippingCosts.totalPrice | currency(item.currency.translated.shortName) }}
        
    {% endblock %}

    {% parent %}
{% endblock %}

Es wird anhand¬†einer Konfiguation weitere Spalten in die Bestell√ľbersicht hinzugef√ľgt. Seit 6.3.x geht das nicht mehr.

Folgender Block geht noch:

{% block sw_order_list_content_slot %}
    

    {% block sw_order_list_grid %}
        {% parent %}
    {% endblock %}

{% endblock %}

Weitere Blöcke werden ignoriert:

{% block sw_order_list_grid_columns %}
    {% block sw_order_list_grid_columns_documents %}
        
            {{ getDocument(item, type) }}
        
    {% endblock %}

    {% block sw_order_list_grid_columns_shipping_costs %}
        
            {{ item.shippingCosts.totalPrice | currency(item.currency.translated.shortName) }}
        
    {% endblock %}

    {% parent %}
{% endblock %}

Was hat sich geändert?

Hallo,

ein √§hnliches Problem scheine ich auch zu haben. Ich versuche die Mailadresse bei den Bestellungen mit einzublenden. Habe mich daf√ľr am Tutorial f√ľr das Admin Produktgrid orientiert Shopware 6: Add new column to table in administration . F√ľr die Produkte geht es, umgem√ľnzt auf Bestellungen nicht.
Habe zudem als weitere Hilfestellung ein Plugin aus dem Store mir angesehen, aber weder das Plugin zeigt eine zusätzliche Spalte an, noch meine Variante.
Trackingnummer direkt in der Liste der Bestellungen anzeigen | Shopware Community Store

JS:

import { Component } from 'src/core/shopware';
import template from './sw-order-list.html.twig';

Shopware.Component.override('sw-order-list', {
    template,

    computed : {
        orderColumns() {
            let columns = this.getOrderColumns();
            columns.push(
                {
                    property: 'orderCustomer.email',
                    label: 'sw-order.list.columnCustomerEmail',
                    allowResize: true
                }
            );

            return columns;
        }
    }
});

Template:

{% block sw_order_list_grid_columns %}
    {% parent %}

    {% block sw_order_list_grid_columns_customer_email %}
        
            
                {{ item.orderCustomer.email }}
            
        
    {% endblock %}

{% endblock %}

 

Hat hier jemand einen Tipp oder vielleicht ein aktuelles Tutorial?

Danke schonmal :slight_smile:

Ich bin √ľber das gleiche Verhalten gestolpert bzw. habe festgestellt, dass scheinbar nur bestehende Columns √ľberschrieben/abge√§ndert werden k√∂nnen, obwohl die hinzugef√ľgte Spalte in den Grid-Templates (noch) vorhanden war. Nach einem Roundtrip durch die Grid-Componenten fiel mir folgende Datei auf:

vendor/shopware/platform/src/Administration/Resources/app/administration/src/app/component/data-grid/sw-data-grid/index.js

Hier werden, sofern vorhanden, in der initGridColumns()-Methode die Spaltendefinitionen aus dem localStorage geholt. Diese Daten sind vorhanden, sobald man in der Bestell√ľbersicht irgendwann einmal an den Tabellen-Settings herumgespielt hat. Aber anstatt zum Beispiel nur den Anzeigestatus zu speichern, wird hier die gesamte Definition mit entsprechenden Visibility-Flags abgelegt und eben auch f√ľr das Rendering verwendet.

Kurzum: Nach dem Löschen des localStorage werden auch extendete Spalten sichtbar.

Das bringt nat√ľrlich ein Problem bei Plugin-Updates mit sich, die solche Listen erweitern, weil die Anpassungen aufgrund clientseitiger Caches eventuell nicht sichtbar werden. Ggf. k√∂nnte man die localStorageItemKey() im computed √ľberschreiben und einen Suffix/Versionsnummer/Whatever anh√§ngen. Aber ob der Aufwand im Hinblick auf den Nutzen n√∂tig ist, wei√ü ich nicht. Und ich habe auch keine Idee, ob das einen Impact auf andere Dinge h√§tte.

Ich hoffe, es hilft dem ein oder anderen, sich drei Stunden Herumsuchen zu ersparen.

PS: Das Ganze bezieht sich auf die v6.3.4.1 Stable Version.

1 Like

Danke Kidogo,

das bedeute, das man als Pluginhersteller einfach mal den localStorage leert.
Das mach ich doch gerne  Thumb-Up

Hallo, ich habe mich jetzt stundenlang damit befasst und finde absolut keine L√∂sung. NUn bin ich √ľber Google hier gelandet und habe festgestellt das es auch andere gibt mit dem Problem. Hat einer jetzt ne L√∂sung gefunden¬†sw-order-line-items-grid zu √ľberschreiben ? Ich bekomme es einfach nicht angezeigt‚Ķ version v6.3.5.1

w√ľrde mich freuen wenn noch jemand ne Idee hat. Haber auch localStorage zum wiederholten mal geleert aber bekomme absolut keine √Ąnderung in der Deteilanzeige der Bestellungen.¬†¬†

@eurosparshop‚Äć

Das muss wohl ein Bug sein - hat bei mir auch nicht funktioniert.

{% block sw_order_line_items_grid %}

{% parent %}

{% mein_eigener_block %}

‚Äď> funktioniert nicht

{% block sw_order_line_items_grid_grid_columns_quantity %}
    {% parent() %}

     {% mein_eigener_block %}

‚Äď> funktioniert¬†

Ich konnte es nicht im obersten block hinzuf√ľgen und musste einen untergeordneten block nehmen.

Gleiches Verhalten bei der sw-product-basic-form.html.twig