Saya sedang membangun modul khusus di Magento 2 yang memiliki diskon khusus. Saya mencoba untuk menyalin diskon dari kutipan, item kutipan untuk memesan dan memesan barang. Di magento 1, saya menyatakan config.xml
seperti ini:
<fieldsets>
<sales_convert_quote_address>
<custom_discount_amount><to_order>*</to_order></custome_discount_amount>
<base_custom_discount_amount><to_order>*</to_order></base_custome_discount_amount>
</sales_convert_quote_address>
<sales_convert_quote_item>
<custome_discount_amount><to_order_item>*</to_order_item></custome_discount_amount>
<base_custom_discount_amount><to_order_item>*</to_order_item></base_custom_discount_amount>
</sales_convert_quote_item>
</fieldsets>
dan jumlah diskon khusus saya disalin ke tabel: sales_flat_order
dan sales_flat_order_item
seperti yang diharapkan.
Di Magento 2, saya membuat nama file: fieldset.xml
dengan kode ini:
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Object/etc/fieldset.xsd">
<scope id="global">
<fieldset id="sales_convert_quote_item">
<field name="custom_discount_amount">
<aspect name="to_order_item" />
</field>
<field name="base_custom_discount_amount">
<aspect name="to_order_item" />
</field>
</fieldset>
<fieldset id="sales_convert_quote_address">
<field name="custom_discount_amount">
<aspect name="to_order" />
</field>
<field name="base_custom_discount_amount">
<aspect name="to_order" />
</field>
</fieldset>
</scope>
tetapi tidak ada kesuksesan. Apa lagi yang perlu saya lakukan di magento 2 untuk membuatnya berfungsi? Bisakah kalian bantu saya?
Konversi penjualan Magento2 dari kutipan ke pemesanan dan itemnya tidak berfungsi.
Kutip
mengkonversi dari pesanan dan pesanan barang ke faktur, pengiriman dan Creditmemo berfungsi dengan baik di Magento2
di bawah ini adalah perbaikan untuk kutipan konversi ke pesanan di magento2 lain Anda perlu menulis acara untuk memindahkan semua nilai yang diajukan dari kutipan ke tabel pesanan magento2a \ app \ code \ Sugarcode \ Test \ etc \ fieldset.xml
app \ code \ Magento \ Quote \ Model \ QuoteManagement.php (baris no 428)
sebelum
dalam fungsi submitQuote () tambahkan kode di bawah ini
perubahan dalam aplikasi \ kode \ Magento \ Penawaran \ Model \ Penawaran \ Item \ ToOrderItem.php (tidak ada sekitar 78)
setelah
dalam fungsi convert () tambahkan kode di bawah ini
itu akan berfungsi dengan baik tetapi
pastikan seperti yang saya sebutkan di atas fieldset.xml harus ada di modul kustom Anda dan juga Anda harus menulis acara untuk mengatur atribut produk setelah produk ditambahkan ke keranjang seperti di magento1.x dan juga Anda harus mengatur custom diajukan dalam tabel kutipan maka hanya itu yang akan disalin dari kutipan dan item sesuai pesanan dan itemnya
sumber
Saya telah melihat ini, dan dalam modul Magento \ GiftMessage, ada juga konversi bidang (fieldset.xml):
Cara mereka menambahkannya ke pesanan adalah melalui pengamat (Pengamat / SalesEventQuoteSubmitBeforeObserver.php, terdaftar di etc / frontend / events.xml):
Jadi, saya kira, ini adalah opsi yang layak dipertimbangkan.
sumber
<event name="sales_model_service_quote_submit_before"> <observer name="giftmessage" instance="Magento\GiftMessage\Observer\SalesEventQuoteSubmitBeforeObserver" shared="false" /> </event>