Kami membutuhkan cara sederhana untuk menambahkan atribut ke catatan pelanggan yang tidak dapat diedit oleh pelanggan atau admin, hanya secara terprogram. Pada dasarnya, kami memiliki situs ExpressionEngine yang digabungkan dengan Magento.
Kami mengautentikasi melalui layanan web dan ingin menyimpan beberapa JSON yang kami dapatkan dari otentikasi ke dalam catatan pelanggan dan memperbaruinya setiap kali mereka masuk.
Kami juga ingin data diubah jika mereka mengubah informasi dalam proses checkout, seperti alamat pengiriman. Kami kemudian akan mengirim data kembali ke layanan web kami karena saat ini kami melakukannya dengan setiap pesanan.
Apakah ini sulit dilakukan karena kami sekarang menyimpan beberapa JSON pada setiap produk menggunakan atribut khusus dengan ekstensi Opsi Kustom MageWorx?
Saya menggunakan Online Module Creator di sini http://www.silksoftware.com/magento-module-creator/ tetapi saya tidak yakin bagaimana memodifikasi atau mengambil nilai begitu modul diinstal.
Di mana saya bisa belajar cara menulis ekstensi untuk melakukan ini?
customer_entity
tabel, Anda perlu menambahkan kolom ke tabel dan dalam skrip yang menambahkan atribut (lihat jawaban saya di bawah) ganti tipe darivarchar
kestatic
.customer_entity
tabel. Dan atribut saya adalah tipe 'pilih'. Saya ingin menyimpan nilai atribut saya langsung di 'custom_column' ini dalamcustomer_entity
tabel. Bagaimana cara melakukannya?Jawaban:
/app/code/local/Your/Customattribute/sql/your_customattribute_setup/install-0.1.0.php
/app/code/local/Your/Customattribute/etc/config.xml
app / etc / modules / Your_Customattribute.xml
Kemudian untuk mengambil atau mengedit Anda menggunakan:
Anda harus membuat pengamat acara untuk acara masuk, jawab di sini: Bagaimana saya bisa mendapatkan data pelanggan dari pengamat setelah berhasil masuk?
dan juga pengamat yang mungkin untuk customer_save_after jika mereka mengubah alamat mereka di akun mgmt, dan satu untuk kuotasi, yang bisa berada di tempat yang berbeda tergantung pada apa yang Anda tuju.
sumber
Ada banyak fungsionalitas khusus yang harus Anda buat sendiri sebagai modul penimpaan modul khusus , dan menghubungkan ke acara di mana Anda ingin data diteruskan ke layanan web Anda. Sejauh atribut berjalan, ketika Anda membuat modul khusus Anda dan menentukan sumber daya pengaturan untuk itu dalam modul
config.xml
seperti pada tutorial di atas, maka dalam skrip instalasi Anda, Anda dapat melakukan sesuatu seperti ini:[module_path] / sql / [resource_node_defined_in_config_xml] / mysql4-install- [module_version_number] .php
user_defined
menjadikan atribut sebagaisystem
atribut jika disetel ke0
, yang menonaktifkan kemampuan untuk menghapusnya dari admin.sumber
Setelah banyak debugging inti saya menemukan bahwa magento mengharapkan file berada di data / Companyname_Modulname_setup / atau di sql / Companyname_Modulname_setup / .
Dan itu harus dinamai
mysql4-data-upgrade-OLDVERSION-NEWVERSION.php
misalnyamysql4-data-upgrade-0.1.0-0.1.0.php
bukanmysql4-install-0.1.0.php
Setidaknya di Magento 1.9.3
sumber