Customer Attributes auslesen

Hallo zusammen,

Ich lege über ein Plugin für den Customer ein neues Attribut bei der Installation an:

 // Access code Shopware()-\>Models()-\>addAttribute( 's\_user\_attributes', 'pha', 'additional\_attribute', 'varchar(255)', false, 0 );

Soweit so einfach…
Nun ist meine Frage: Wie kann ich aus einer Customer Instanz auf dieses neue Attribut zugreifen? Für die Methode getAttribute() des Customer Objekts habe ich leider keine Doku gefunden (oder übersehen)… Mir schwebt etwas wie $customer->getAttribute()->get(‚additional_attribute‘) vor…

Und noch etwas: Die getAttribute() Methode liefert ein Objekt vom Typ Shopware/Models/Attribute/Customer zurück. DIeses Model gibt es allerdings nicht - liegen die Attribute models anderswo und werden sie nur über den Namespace verlinkt?

Danke für Eure Hilfe & LG
Michael

@wolkenkraft schrieb:

Hallo zusammen,

Ich lege über ein Plugin für den Customer ein neues Attribut bei der Installation an:

// Access code Shopware()->Models()->addAttribute( ‚s_user_attributes‘, ‚pha‘, ‚additional_attribute‘, ‚varchar(255)‘, false, 0 );

Soweit so einfach…
Nun ist meine Frage: Wie kann ich aus einer Customer Instanz auf dieses neue Attribut zugreifen? Für die Methode getAttribute() des Customer Objekts habe ich leider keine Doku gefunden (oder übersehen)… Mir schwebt etwas wie $customer->getAttribute()->get(‚additional_attribute‘) vor…

Und noch etwas: Die getAttribute() Methode liefert ein Objekt vom Typ Shopware/Models/Attribute/Customer zurück. DIeses Model gibt es allerdings nicht - liegen die Attribute models anderswo und werden sie nur über den Namespace verlinkt?

Danke für Eure Hilfe & LG
Michael

Hallo,

als Beispiel kannst du dir dies heranziehen: http://community.shopware.com/Schuhgrößen-Erweiterung_detail_1052.html .

Beachte aber bitte, das ab Shopware Version 5.2.0 deine Lösung nicht mehr funktionieren wird, da sich in dem Bereich einiges (vieles) ändert: Attribute system .

Beste Grüße

Sebastian

1 Like

Hallo,

Vielen Dank… Das sieht ja wirklich nach einer massiven - wenn auch vorteilhaften - Änderung aus. Ich werde dann mal die Methodik für 5.2 implementieren und hoffen, das die Stable wirklich im Juni kommt.

Liebe Grüße,
Michael

Hallo,

Noch eine Frage zu diesem Thema:
Das Administrieren der Attribute in 5.2 klappt schon sehr gut. Allerdings habe ich noch immer keien Dokumentation gefunden, die beschreibt, wie ich von meiner Customer Instanz auf eines der custom Attribute zugreifen kann.

Ich denke das ist doch ein Anwendungsfall, der äußerst häufig ist!? Hat vielleicht jemand einen Tipp für mich?

Danke vorweg & liebe Grüße

Push !

Gibt es hier neues ? Ich stehe gerade vor dem gleichen Problem

 

Gruß

Georg

Du suchst den shopware_attribute.data_loader service - siehe: Attribute system

Viele Grüße

Hi,

ja, da hast du Recht, das funktioniert auch denke ich :) 

Leider ist mir aufgefallen, das mein Problem ein anderes ist und es passt gar nicht zu diesem Thread hier.

Ich versuche bei der Kundenregistrierung ein Zusatzfeld zu valiidieren. Das steht zu diesem Zeitpunkt natürlich noch nicht in der s_user_attributes…

Ich habe Zugriff auf die $customer Variabel und mit $customer->getAttribute() bekomme ich auch ein Modelobject zurück wo das Feld korrekt drin steht.

 

Georg

 

Push !

Es muß doch möglich sein, wenn man den RegisterService dekoriert, die das $customer Object zu modifizieren eh der Customet in die Datenbank geschrieben wird ?

Gruß

Georg

 

Validieren oder Modifizieren? Hast du dir schonmal diese Methode angeschaut? Die könntest du dekorieren und nen eigenen Validator für dein Feld hinzufügen.

Shopware\Bundle\AccountBundle\Service\Validator::validate()

Beides :slight_smile: Ich würde gerne eine Mitgliedsnummer überprüfen und bei positiven Check den Kunden in eine extra Kundengruppe schieben

Ja, ich befürchte fast, dass ich einen eigenen Validator dafür brauche um das sauber zu machen