Saya memiliki atribut pelanggan yang didefinisikan sebagai berikut:
$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
]);
Pertanyaan saya adalah: apa perbedaan atribut jika saya set user_defined
ke false
? Dan di mana situasi saya harus menetapkan user_defined
ke true
atau false
?
sumber
Untuk menambah ini:
Jika Anda menambahkan atribut melalui
Install-/ UpdateSchema
pastikan untuk menambahkan'user_defined' => true
. Hanya atribut non sistem (mis. Is_user_defined = 1) yang dapat digunakan untuk produk yang dapat dikonfigurasi.sumber
Bahkan, saya melihat perbedaan besar ketika saya belajar Magento 1 . Jika suatu atribut disetel menjadi user_defined = true , itu tidak akan dibuat dalam tabel eav_entity_attribute . Tetapi Anda masih dapat menemukannya di tabel eav_attribute . Jika set user_defined = false , maka ketika itu dibuat itu akan muncul di kedua eav_entity_attribute dan eav_attribute tabel. Tetapi sebagai balasannya, saya tidak tahu mengapa ini membuat perbedaan / pengaruhnya.
Saya tidak yakin tentang Magento 2, tapi saya kira Anda dapat memverifikasinya dengan mudah dan memberi tahu orang lain.
sumber
Jika atribut ditetapkan sebagai 'user_defined' maka pengguna dapat menentukan nilai opsi di dalam antarmuka pengguna atribut.
Namun jika Anda menggunakan model sumber maka 'user_defined' harus disetel ke false, jika tidak opsi dari model sumber tidak dimuat.
sumber
user_defined = atribut sebenarnya pada umumnya dibuat oleh manajer katalog untuk memiliki informasi spesifik produk.
user_defined = false untuk atribut default Magento yang diperlukan untuk beberapa fungsi untuk berfungsi atau modul apa pun yang menyediakan beberapa fitur tambahan berdasarkan atribut, seperti sku , qty , website_ids , product_online adalah atribut sistem yang diperlukan untuk mengelola jumlah dan ruang lingkup produk, dengan cara yang sama dilakukan pada fitur atau show_on_homepage dapat berupa atribut yang melakukan sesuatu di backend untuk menyediakan beberapa fitur dan tidak boleh dihapus oleh pengguna admin yang dapat merusak fungsionalitas.
sumber
Hal lain yang didefinisikan oleh pengguna adalah menentukan apakah Anda dapat mengedit atau tidak opsi atribut dari halaman edit atribut di back office, karenanya jika Anda memiliki atribut dengan label tertentu yang Anda tidak ingin seorang pengguna admin berubah, Anda harus mengatur "user_defined" menjadi false.
sumber