Attribut in Artikel (backend) hinzufügen

Hey,

ich habe gerade einen blöden fehler und komme einfach nicht drauf (Brett vorm kopf  Foot-in-Mouth) vielleicht könnt ihr mir mal die Augen öffnen.

Ich möchte ein Attribut zu den Artikeln hinzufügen und habe in meiner “install” methode das Beispiel aus dem Entwicklerhandbuch eingefügt:

public function install()
    {
        
        $service = $this->container->get('shopware_attribute.crud_service');
        //$service->update('s_articles_attributes', 'xmlorder', 'string');
        $service->update('s_articles_attributes', 'my_column', 'combobox', [
            'label' => 'Field label',
            'supportText' => 'Value under the field',
            'helpText' => 'Value which is displayed inside a help icon tooltip',

            //user has the opportunity to translate the attribute field for each shop
            'translatable' => true,

            //attribute will be displayed in the backend module
            'displayInBackend' => true,

            //in case of multi_selection or single_selection type, article entities can be selected,
            'entity' => 'Shopware\Models\Article\Article',

            //numeric position for the backend view, sorted ascending
            'position' => 100,

            //user can modify the attribute in the free text field module
            'custom' => true,

            //in case of combo box type, defines the selectable values
            'arrayStore' => [
                ['key' => '1', 'value' => 'first value'],
                ['key' => '2', 'value' => 'second value']
            ],
        ]);
        return true;
    }

 

Beim installieren des Plugins bekomme ich aber folgende Fehlermeldung:

also er findet das Objekt container nicht. ($this->container-get) aber warum soll er das nicht finden?

 

Hilfeee :-/

 

Das Beispiel bezieht sich auf das neue Plugin System. Dort wird $this->container bereit gestellt. Du suchst anscheinend (im legacy Plugin System) einfach nur $this->get( “shopware_attribute.crud_service” );

Viele Grüße

1 „Gefällt mir“

@Aquatuning GmbH schrieb:

Das Beispiel bezieht sich auf das neue Plugin System. Dort wird $this->container bereit gestellt. Du suchst anscheinend (im legacy Plugin System) einfach nur $this->get( „shopware_attribute.crud_service“ );

Viele Grüße

Ah okay danke!!

wie mache ich es denn das es mit dem neuen system funktioniert? Meine Testumgebung ist 5.3. 

Und wie haltet ihr es kompatibel das es mit 5.1,5.2 und 5.3 funktioniert?

 

Siehe https://developers.shopware.com/developers-guide/plugin-system/

Viele Grüße

@Lisa83 schrieb:

@Aquatuning GmbH schrieb:

Das Beispiel bezieht sich auf das neue Plugin System. Dort wird $this->container bereit gestellt. Du suchst anscheinend (im legacy Plugin System) einfach nur $this->get( „shopware_attribute.crud_service“ );

Viele Grüße

Ah okay danke!!

wie mache ich es denn das es mit dem neuen system funktioniert? Meine Testumgebung ist 5.3. 

Und wie haltet ihr es kompatibel das es mit 5.1,5.2 und 5.3 funktioniert?

 Hallo,

im Prinzip steht alles ausführlich in den hier schon angesprochenen Dokumentationen, beispielsweise auch hier: Attribute system .

Wie man es kompatibel für 5.0 bis 5.3 hält? In dem man beispielsweise mehrere Versionen des Plugins für die jeweiligen Versionen bereitstellt, also beispielsweise 1.0.x für bis 5.2 und 2.0.x ab 5.2 . Anders geht es auch nicht.

Beste Grüße

Sebastian