TL; DR : Apakah ada alasan mengapa produk sederhana yang terkait dengan produk yang dapat dikonfigurasi harus dalam atribut yang sama dengan produk yang dapat dikonfigurasi itu sendiri? Maksud saya, apakah ada alasan teknis ? Saya tahu alasan "akal sehat". Jika Anda menjual sepasang sepatu maka semua versi tergantung pada warna dan ukuran harus sepatu juga.
Versi panjang : Saya punya tugas untuk "menggabungkan" beberapa produk yang dapat dikonfigurasi. Maksud saya dari 2 atau lebih hanya membuat satu. Saya tidak ingin melakukannya secara manual karena jumlah produk dan saya tidak ingin melewatinya$product->load(..)->set...()->save()
karena jumlah waktu yang diperlukan untuk menjalankan skrip. Jadi saya hentikan proses karena saya yakin tidak ada produk sederhana yang tumpang tindih. Ada kombinasi unik antara ukuran dan warna. Saya melakukan ini:
Mage::getResourceSingleton('catalog/product_type_configurable')
->saveProducts($mainConfigrableProduct, $simpleProductIds);
di mana $simpleProductIds
adalah array dari semua id produk sederhana yang terkait dengan semua produk yang dapat dikonfigurasi yang perlu digabungkan.
Ini berfungsi dengan baik untuk sebagian besar produk, tetapi ada beberapa yang memiliki masalah.
Jika saya menelepon
$productIds = $product->getTypeInstance()->getUsedProductIds()
Saya akan mendapatkan semua id produk sederhana, tetapi di backend hanya beberapa yang muncul. Setelah menggali selama beberapa waktu saya menemukan bahwa satu-satunya yang ditampilkan adalah yang dalam atribut yang sama ditetapkan sebagai produk yang dapat dikonfigurasi. Set atribut lainnya sangat mirip dengan yang pertama, hanya beberapa perbedaan kecil tetapi berisi atribut yang dapat dikonfigurasi (ukuran dan warna).
Dan sekarang yang aneh. Di frontend saya berharap melihat semua produk ($ productIds dalam kode di atas) atau hanya produk dalam set atribut yang sama. Ya ada sesuatu di antara keduanya.
- 20 id produk terkait - 5 ukuran, 4 warna
- 10 produk terkait di backend - 5 ukuran, 2 warna - 2 warna lainnya (10 produk) berada dalam set atribut yang berbeda
- 15 kombinasi di frontend - 5 ukuran 3 warna (???)
Saya bisa menyelesaikan masalah dengan mengubah set atribut untuk produk yang tidak muncul, tapi saya masih bingung.
Catatan : Jangan coba ini di rumah. Atau Anda dapat mencobanya di rumah tetapi tidak di server langsung.