Magento 2: как преобразовать пользовательское поле предложения в поле заказа


Я правильно добавил новое поле "management_fee" в таблицу "цитата". Я также добавляю это поле в поле "sales_order". Я хотел бы обновить это поле в таблице sales_order, пока предложение преобразуется в заказ.

Я знаю, как работать с цитатами, используя плагин и класс Magento\Quote\Model\Quote\Item\ToOrderItem, но я не нашел класс для цитаты на заказ.

Author: Abhishek Panchal, 2018-11-09

2 answers

Добавьте поля в обе таблицы quote и sales_order с помощью сценария настройки в вашем модуле.

Затем добавьте событие в свой модуль (см. Ниже)

 <?xml version="1.0"?>
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
        <event name="sales_model_service_quote_submit_before">
            <observer name="quote_submit_before" instance="Vendor\Module\Observer\QuoteSubmitBefore" />
        </event>
    </config>

Наконец, сохраните данные котировки в соответствии с вашим заказом

class QuoteSubmitBefore implements ObserverInterface
{

    /**
     * @param Observer $observer
     * @return void
     */
    public function execute(Observer $observer)
    {
       $quote = $observer->getQuote();
       $order = $observer->getOrder()

        $order->setData('field_custom', $quote->getData('field_custom'));      
    }
}
 4
Author: Herve Tribouilloy, 2018-11-09 17:07:08

Я на самом деле не в курсе этой вещи, но вы можете попробовать, я надеюсь, что это сработает для вас. Создайте fieldset.xml в папке etc вашего модуля.

Fieldset.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:DataObject/etc/fieldset.xsd">
    <scope id="global">
        <fieldset id="sales_convert_quote">
            <field name="management_fee">
              <aspect name="to_order" />
           </field>
        </fieldset>
    </scope>
</config> 

Вы также должны проверить ссылку ниже https://devdocs.magento.com/guides/v2.2/ext-best-practices/tutorials/copy-fieldsets.html

 0
Author: Ramkishan Suthar, 2018-11-09 18:31:22