Bagaimana cara kerja penetapan harga dinamis di Magento?

8

Saya ingin tahu bagaimana penetapan harga dinamis di Magento?

Misalnya saya telah membuat produk di backend dan menambahkan beberapa opsi khusus untuk itu. Jadi, jika pengguna memilih opsi, harga berubah secara otomatis pada halaman tampilan produk tanpa memuat ulang halaman.

Adakah yang bisa menjelaskan bagaimana Magento melakukan tindakan ini?

Dan dapatkah kita menambahkan penetapan harga dinamis khusus? Saya ingin jika pengguna mengklik tautan (saya menambahkan ke halaman tampilan produk), maka harganya berubah.

Wakanina
sumber

Jawaban:

10

Perhitungan harga adalah topik yang sangat kompleks di Magento. Berikut ini adalah pandangan mata burung tentang bagaimana hal ini dilakukan untuk produk sederhana:

  1. Magento mendapat harga "dasar". Ini adalah harga yang telah Anda tentukan di kolom harga
  2. Harga "grup" diterapkan. Ini adalah bagian di mana harga tingkat dipertimbangkan berdasarkan jumlah yang dipesan, situs web, dan grup pelanggan.
  3. Harga khusus diterapkan jika harga khusus ditentukan untuk tanggal saat ini.
  4. Acara " catalog_product_get_final_price " dipecat. Di sinilah modul khusus Anda yang mengutak-atik harga harus masuk. Sebagai contoh yang berfungsi, modul CatalogRule menangkap peristiwa ini dan mengubah harga berdasarkan aturan katalog yang ditentukan
  5. Harga opsi yang dipilih dipertimbangkan

Karena proses ini sangat memakan waktu, Magento membuat indeks harga dan akan melalui di atas hanya ketika mengindeks ulang. Indeks harga menggunakan sekelompok tabel yang memiliki info tentang harga "final" (dihitung menggunakan langkah-langkah di atas) bersama dengan hal-hal seperti harga minimum / maksimum untuk konfigurasi dan bundel. Tabel ini memiliki entri untuk setiap kombinasi situs web / produk / kelompok pelanggan, sehingga sistem hanya perlu memilih baris yang tepat berdasarkan data pelanggan, sehingga seluruh proses berjalan dalam waktu yang layak.

Sedangkan untuk bagian frontend, cara harga dinaikkan dan diturunkan secara dinamis, ini semua dilakukan dalam javascript yang dimulai dengan json array dengan semua "level harga" dan akan menurunkan / meningkatkan harga berdasarkan pilihan Anda.

Paul Grigoruta
sumber
Terima kasih Paul atas jawaban Anda. Harga dinamis Magento adalah topik yang rumit :)
Wakanina
menggunakan acara "catalog_product_get_final_price" dan setFinalPrice()ubah harga di halaman tampilan produk dan langkah selanjutnya. Tetapi bagaimana saya bisa menetapkan harga dinamis langsung dari halaman daftar produk?
Shathish
1

Ini dilakukan dengan Javascript dan Ajax, jika saya benar itu terletak di file js / varien / configurable.js. Jika Anda ingin mengubah perilaku ini, Anda bisa menggunakan prototyping untuk memperluas fungsi tertentu. Saya tidak terlalu menyukai javascript tapi saya pikir artikel Stackoverflow ini menjelaskan dasar-dasar memperluas /programming/2686258/javascript-inheritance-extend-function

Sander Mangel
sumber
Terima kasih Sander, ini membuatnya sedikit jelas :). Adakah yang bisa menjelaskan lebih detail? Ini akan berharga untuk semua orang.
Wakanina