Adicionei alguns campos personalizados ao formulário do grupo de clientes usando upgradeSchema.php
.
Depois disso, descobri que os campos originais, como código do grupo de clientes e ID do imposto, são salvos usando métodos setter na API fornecida. É completamente diferente do Magento 1.X que apenas usa setXXX () para salvar.
Respostas:
O mecanismo de atributos de extensão deve ser usado neste caso. Ele permite a extensão das principais APIs por módulos de terceiros. Etapas genéricas para ativar o novo atributo de extensão:
var
e execução<project_root>/bin/magento setup:di:compile
, o setter e o getter correspondentes para esse novo atributo devem aparecer em\Magento\Customer\Api\Data\GroupExtensionInterface
(essa interface é gerada automaticamente)\Magento\Customer\Api\GroupRepositoryInterface::save
,\Magento\Customer\Api\GroupRepositoryInterface::getById
(e quaisquer outros métodos de serviço, conforme necessário) para salvar / novo atributo de carga. Como desenvolvedor de extensões, somente você sabe onde esse atributo deve ser armazenado; pode haver qualquer tabela. Veja\Magento\Downloadable\Model\Plugin\AroundProductRepositorySave::aroundSave
como um exemplojoin
nó. Caso contrário, basta pular esta$customerGroup->getExtensionAttributes()->getMyAttribute()
ondecustomerGroup
implementa\Magento\Customer\Api\Data\GroupInterface
.setMyAttribute()
também pode ser usadoAbaixo está o exemplo de configuração que deve ser colocado em
VendorName/ModuleName/etc/extension_attributes.xml
fonte
Não esqueça que um módulo precisa de um
register.php
arquivo e você deve usá-bin/magento module:enable VendorName_ModuleName
lo antes que ele apareça!fonte