Я добавил несколько пользовательских полей в форму группы клиентов, используя upgradeSchema.php
.
После этого я обнаружил, что исходные поля, такие как код группы клиентов и налоговый идентификатор, сохраняются с помощью методов установки в предоставленном API. Он полностью отличается от Magento 1.X, который просто использует setXXX () для сохранения.
Ответы:
В этом случае следует использовать механизм атрибутов расширения. Это позволяет расширять основные API сторонними модулями. Общие шаги для включения нового атрибута расширения:
var
и запуска<project_root>/bin/magento setup:di:compile
соответствующие установщик и получатель для этого нового атрибута должны появиться в\Magento\Customer\Api\Data\GroupExtensionInterface
(этот интерфейс генерируется автоматически)\Magento\Customer\Api\GroupRepositoryInterface::save
,\Magento\Customer\Api\GroupRepositoryInterface::getById
(и любых других методов обслуживания по мере необходимости) , чтобы сохранить / новый атрибут нагрузки. Как разработчик расширения, только вы знаете, где этот атрибут должен храниться, может быть любая таблица. Смотри\Magento\Downloadable\Model\Plugin\AroundProductRepositorySave::aroundSave
как примерjoin
узел. Если нет, то просто пропустите$customerGroup->getExtensionAttributes()->getMyAttribute()
гдеcustomerGroup
реализует\Magento\Customer\Api\Data\GroupInterface
.setMyAttribute()
также может быть использованНиже приведен пример конфигурации, которая должна быть
VendorName/ModuleName/etc/extension_attributes.xml
источник
Не забывайте, что модулю нужен
register.php
файл, и вы должны использоватьbin/magento module:enable VendorName_ModuleName
его до того, как он появится!источник