Saya telah membuat model khusus untuk membuat pesanan dari penawaran; Saya menggunakan fieldset.xml untuk menyalin kode kustom kutipan untuk memesan. Saya telah membuat kolom khusus dalam kutipan dan pesanan dengan bidang yang cocok. Ketika pesanan ditempatkan, nilai-nilai disimpan di kolom kustom harga tetapi tidak menyalin ke pesanan. Di bawah ini adalah fieldset.xml saya
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:DataObject/etc/fieldset.xsd">
<scope id="global">
<!--quote convert to order-->
<fieldset id="sales_convert_quote">
<field name="preorder_number">
<aspect name="to_order" />
</field>
<field name="purchase_order_number">
<aspect name="to_order" />
</field>
<field name="reference_number">
<aspect name="to_order" />
</field>
</fieldset>
<!--quote item convert to order item-->
<fieldset id="quote_convert_item">
<field name="preorder_number">
<aspect name="to_order_item" />
</field>
<field name="purchase_order_number">
<aspect name="to_order_item" />
</field>
<field name="reference_number">
<aspect name="to_order_item" />
</field>
</fieldset>
</scope>
Apa lagi yang perlu saya lakukan?
Jawaban:
Jika Anda melihat pada basis kode Magento2.1 saat ini, Anda akan melihat bahwa di folder moduleName / etc ada fieldset.xml dengan perintah untuk menyalin informasi dari satu tabel ke yang lain. Namun ini JANGAN bekerja. Jika Anda melihat lebih dekat, Anda juga akan melihat bahwa ada pengamat yang melakukan hal yang persis sama. Lihatlah https://github.com/magento/magento2/issues/5823
Untuk menyalin dari quote * to order * table Anda harus menggunakan pengamat dan / atau plugin.
Dalam tambahan events.xml Modul khusus Anda
Kemudian
Untuk menyalin item dari quote_item ke order_item, magento tampaknya telah menghapus pengamat terbaik untuk mendapatkan pekerjaan yang sebelumnya
sales_convert_quote_item_to_order_item
. Lihatlah contoh ini yang akan membantu Anda menyalin bidang dari tabel quote_item ke order_item. Bagaimana cara "menambah keranjang" suatu produk dengan bidang input khusus dan menyimpannya ke Database?sumber
Jawaban Renon Stewart banyak membantu saya tetapi saya dapat memperbaikinya dengan dokumentasi pengembang magento resmi ( http://devdocs.magento.com/guides/v2.1/ext-best-practices/tutorials/copy-fieldsets.html )
Dalam events.xml Modul khusus Anda, tambahkan:
Dan di saveOrderBeforeSalesModelQuoteObserver.php:
sumber