Apa prosedur yang benar - daripada menghapus produk dan mulai lagi untuk menambah atau menghapus atribut ke produk yang dapat dikonfigurasi.
Saat membuat produk yang dapat dikonfigurasi, Anda diminta untuk memilih atribut mana yang akan digunakan untuk produk tersebut.
Saya memiliki banyak produk yang sekarang harus saya hapus beberapa atribut untuk yang dipilih pada awalnya, dan beberapa yang juga perlu menambahkan atribut yang pada awalnya tidak dipilih.
Setiap bantuan dengan ini dihargai - karena menghapus produk sepertinya bukan pendekatan terbaik untuk ini. Terutama karena banyak hal lain yang terkait dengan produk.
Jawaban:
Inilah yang berfungsi bagi saya untuk menghapus atribut dari produk yang dapat dikonfigurasi.
Ini skenarionya.
Semua produk yang dapat dikonfigurasi dibuat salah dengan atribut
brand
sebagai atribut yang dapat dikonfigurasi untuk sekitar 50 produk yang dapat dikonfigurasi yang memiliki sekitar 200 produk terkait sederhana.Semua produk sederhana yang dikaitkan dengan atribut yang dapat dikonfigurasi memiliki merek yang sama. Idenya adalah untuk menghapus
brand
dari atribut yang dapat dikonfigurasi dan menetapkannya sebagai atribut sederhana untuk produk yang dapat dikonfigurasi dengan nilai salah satu produk sederhana.Berikut adalah kode yang melakukan ini. Kode dijalankan hanya satu kali. Itu dapat ditambahkan dalam skrip pemutakhiran atau file php sederhana.
Untuk nomor yang tercantum di atas, ini membutuhkan waktu sekitar 15 detik untuk berjalan di mesin lokal saya (bukan yang kuat). Saya yakin ini bisa dioptimalkan. Kemungkinan besar tidak perlu mendapatkan semua produk sederhana dari produk yang dapat dikonfigurasi untuk mendapatkan
brand
nilai, tapi saya tidak repot-repot.sumber
catalog_product_super_attribute
akan berfungsi? Atau saya perlu memodifikasi tabel lain? Seperti di stackoverflow.com/a/13381381/1749007Ini memerlukan pengeditan langsung basis data, dan hukum pertama Magento adalah jangan langsung mengedit basis data .
Tetapi jika Anda cukup gila untuk melanjutkan, ini dibahas di StackOverflow beberapa bulan yang lalu:
ucts. Saya telah menguji peretasan solusi DB di bawah ini pada CE 1.6.2 dan tampaknya berfungsi:
Kredit: /programming/5658197/add-new-attribute-to-existing-configurable-product-magento
Belum teruji - YMMV.
sumber
Untuk menghapus satu atribut produk super (seperti yang mereka sebut) dari semua produk yang dapat dikonfigurasi, Anda bisa menjalankan kueri SQL ini di database:
Di sini, adalah id atribut yang disimpan dalam tabel eav_attribute tentang attribute_code. Tabel catalog_product_super_attribute menautkan produk ke atribut produk super. Anda dapat menambah dan menghapus atribut untuk membuat produk yang dapat dikonfigurasi di sana.
sumber
DELETE FROM catalog_product_super_attribute WHERE attribute_id = <attribute_id> AND product_id = <product_id>;
Ada hack kotor untuk membuka produk yang dapat dikonfigurasi kemudian memilih duplikat, pilih atribut lama dan baru, duplikat dibuat tanpa SKU, kemudian hapus produk yang dapat dikonfigurasi asli dan produk sederhana. Setelah itu Anda dapat memberikan SKU yang sama untuk digandakan. Maka Anda hanya perlu membuat produk sederhana yang baru.
Ini solusi cepat jika tidak ada banyak produk sederhana.
sumber
Saya baru saja berhasil melakukan ini dengan lebih bersih menggunakan alat ekspor impor Magmi Gratis dalam mode pembaruan. (versi pemahaman)
Ekspor bidang-bidang kunci, ubah pengaturan kolom configurable_attributes untuk menentukan atribut yang dapat dikonfigurasi pada SKUS yang sederhana dan dapat dikonfigurasi, kemudian impor ulang menggunakan Magmi
Sebagai mantan Konsultan Oracle, saya setuju untuk tidak mengacaukan dengan database, terutama yang serumit struktur data Magento - lebih baik menggunakan alat yang telah diuji dengan baik untuk melakukan ini.
sumber
Saya perlu menghapus Atribut agar tidak menjadi salah satu atribut "Dapat Dikonfigurasi" untuk Produk yang Dapat Dikonfigurasi.
Referensi di atas tentang catalog_product_super_attribute benar. Menggunakan alat basis data Navicat, saya melakukan beberapa hal secara berurutan.
Untuk pengujian Mengubah Attribute_Id, yang mengubahnya ke bidang lain yang digunakan dalam produk lain. (Dikonfirmasi bahwa itu adalah rekor yang dipermasalahkan). Menulis Down, untuk berjaga-jaga, set lengkap data rekaman (product_super_attribute_id, product_id, atribut_id, posisi)
Akhirnya dihapus semua catatan bersama.
Itu berhasil. Saya juga mencatat apa yang saya lakukan dengan asumsi saya perlu melakukan ini lagi.
Lagi: Menghapus Catatan di "catalog_product_super_attribute" memecahkan masalah saya yang sepertinya terkait dengan yang lain di atas.
Info Tambahan: untuk menghubungkan "atribut_id" ke daftar nama yang benar, penting untuk melihat: catalog_super_attribute_label -> dan berkorelasi melalui product_super_attribute_id.
Saya telah mencari bidang "attribute_id" terkait (belum menemukan).
"product_super_attribute_id" melakukan trik untuk memberi tahu Anda apa sebenarnya "attribute_id". (Saya masih ingin mencari set data "default" untuk "attribute_id" untuk melihat bagaimana suatu atribut didefinisikan pertama kali dalam database).
sumber