Ich habe der Form der Kundengruppe mithilfe von einige benutzerdefinierte Felder hinzugefügt upgradeSchema.php
.
Danach stellte ich fest, dass die ursprünglichen Felder wie Kundengruppencode und Steuer-ID mithilfe von Setter-Methoden in der bereitgestellten API gespeichert werden. Es ist völlig anders als Magento 1.X, das nur setXXX () zum Speichern verwendet.
Antworten:
In diesem Fall sollte der Mechanismus für Erweiterungsattribute verwendet werden. Es ermöglicht die Erweiterung von Kern-APIs durch Module von Drittanbietern. Allgemeine Schritte zum Aktivieren eines neuen Erweiterungsattributs:
var
und Ausführen<project_root>/bin/magento setup:di:compile
sollte der entsprechende Setter und Getter für dieses neue Attribut in angezeigt werden\Magento\Customer\Api\Data\GroupExtensionInterface
(diese Schnittstelle wird automatisch generiert).\Magento\Customer\Api\GroupRepositoryInterface::save
,\Magento\Customer\Api\GroupRepositoryInterface::getById
(und alle anderen Service - Methoden je nach Bedarf) zu speichern / laden neues Attribut. Als Erweiterungsentwickler wissen nur Sie, wo dieses Attribut gespeichert werden soll, möglicherweise eine beliebige Tabelle. Siehe\Magento\Downloadable\Model\Plugin\AroundProductRepositorySave::aroundSave
als Beispieljoin
Knoten. Wenn nicht, überspringen Sie dies einfach$customerGroup->getExtensionAttributes()->getMyAttribute()
, wocustomerGroup
implementiert\Magento\Customer\Api\Data\GroupInterface
.setMyAttribute()
kann auch verwendet werdenUnten finden Sie ein Beispiel für die Konfiguration, die vorgenommen werden sollte
VendorName/ModuleName/etc/extension_attributes.xml
quelle
Vergessen Sie nicht, dass ein Modul eine
register.php
Datei benötigt , die Sie verwenden müssen,bin/magento module:enable VendorName_ModuleName
bevor sie angezeigt wird!quelle