[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 „Gefällt mir“

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