He agregado algunos campos personalizados al formulario de grupo de clientes mediante el uso upgradeSchema.php
.
Después de eso, descubrí que los campos originales, como el código de grupo de clientes y la identificación fiscal, se guardan utilizando métodos de establecimiento en la API proporcionada. Es completamente diferente de Magento 1.X que solo usa setXXX () para guardar.
Respuestas:
El mecanismo de atributos de extensión debe usarse en este caso. Permite la extensión de API centrales por módulos de terceros. Pasos genéricos para habilitar el nuevo atributo de extensión:
var
y ejecutar<project_root>/bin/magento setup:di:compile
, debe aparecer el setter y getter correspondientes para este nuevo atributo\Magento\Customer\Api\Data\GroupExtensionInterface
(esta interfaz se genera automáticamente)\Magento\Customer\Api\GroupRepositoryInterface::save
,\Magento\Customer\Api\GroupRepositoryInterface::getById
(y cualquier otros métodos de servicio si es necesario) para guardar / cargar nuevo atributo. Como desarrollador de extensiones, solo usted sabe dónde debe almacenarse este atributo, puede ser cualquier tabla. Ver\Magento\Downloadable\Model\Plugin\AroundProductRepositorySave::aroundSave
como un ejemplojoin
nodo. Si no es así, solo omita esto$customerGroup->getExtensionAttributes()->getMyAttribute()
donde secustomerGroup
implementa\Magento\Customer\Api\Data\GroupInterface
.setMyAttribute()
puede ser usado tambiénA continuación se muestra el ejemplo de configuración que se debe poner a
VendorName/ModuleName/etc/extension_attributes.xml
fuente
¡No olvide que un módulo necesita un
register.php
archivo y debe usarlobin/magento module:enable VendorName_ModuleName
antes de que aparezca!fuente