Tengo un atributo de cliente definido de la siguiente manera:
$customerSetup->addAttribute(Customer::ENTITY, "attr_code", [
"type" => "varchar",
"backend" => "",
"label" => "Attribute Label",
"input" => "text",
"source" => "Magento\Eav\Model\Entity\Attribute\Source\Table",
"visible" => true,
"required" => false,
"default" => "",
"frontend" => "",
"unique" => false,
"note" => "",
'system' => 0,
'user_defined' => true
]);
Mi pregunta es: ¿cuál es la diferencia en el atributo si fijo user_defined
a false
? Y en el que las situaciones que debería establecer user_defined
para true
o false
?
fuente
Para agregar a esto:
Si agrega atributos a través de
Install-/ UpdateSchema
asegúrese de agregar a'user_defined' => true
. Solo los atributos que no son del sistema (p. Ej. Is_user_defined = 1) pueden usarse para productos configurables.fuente
De hecho, noté una gran diferencia cuando aprendí Magento 1 . Si un atributo se establece como user_defined = true , no se creará en la tabla eav_entity_attribute . Pero aún puede encontrarlo en la tabla eav_attribute . Si se establece user_defined = false , cuando se cree, aparecerá en las tablas eav_entity_attribute y eav_attribute . Pero a cambio, no sé por qué esto hace la diferencia / afecto.
No estoy seguro acerca de Magento 2, pero supongo que puede verificarlo fácilmente y dejar que otros lo sepan.
fuente
Si un atributo se establece como 'definido por el usuario', un usuario puede definir los valores de las opciones dentro de la interfaz de usuario del atributo.
Sin embargo, si está utilizando un modelo fuente, entonces 'user_defined' debe establecerse en falso; de lo contrario, las opciones del modelo fuente no se cargarán.
fuente
user_defined = true atributos generalmente son creados por el administrador de catálogo para tener información específica del producto.
user_defined = false para los atributos predeterminados de Magento que se requieren para que algunas funcionalidades funcionen o cualquier módulo que proporcione alguna característica adicional basada en un atributo, como sku , qty , website_ids , product_online son atributos del sistema necesarios para administrar la cantidad y el alcance del producto, de la misma manera se_featured o show_on_homepage puede ser un atributo que hace algo en el backend para proporcionar alguna característica y no debe ser eliminado por el usuario administrador que puede romper la funcionalidad.
fuente
Otra cosa que definió el usuario es que determina si puede editar o no las opciones del atributo desde la página de edición de atributos en la oficina administrativa, por lo tanto, si tiene un atributo con etiquetas específicas que no desea que cambie un usuario administrador, debe establecer "user_defined" en falso.
fuente