Today, we will learn about the way to convert custom field from quote item to order item in Magento 2, through the below instructions.
di.xml
filedi.xml
fileIn the module app/code/Mageplaza/HelloWorld/etc
, please add the di.xml
file.
In the di.xml
file, let’s identify a code:
<type name="Magento\Quote\Model\Quote\Item\ToOrderItem">
<plugin name="HelloWorld_to_order_item" type="Mageplaza\HelloWorld\Model\Plugin\Quote\HelloWorldToOrderItem"/>
</type>
Then, identify a plugin Mageplaza\HelloWorld\Model\Plugin\Quote\HelloWorldToOrderItem” of class “Magento\Quote\Model\Quote\Item\ToOrderItem
Mageplaza\HelloWorld\Model\Plugin\Quote\HelloWorldToOrderItem
, and identify the function aroundConvert
which will convert the custom data from quote item to order item at the same time.public function aroundConvert(
\Magento\Quote\Model\Quote\Item\ToOrderItem $subject,
\Closure $proceed,
\Magento\Quote\Model\Quote\Item\AbstractItem $item,
$additional = []
) {
/** @var $orderItem Item */
$orderItem = $proceed($item, $additional);
$orderItem->setHelloWorldCustomData($item->getHelloWorldCustomData());
return $orderItem;
}
You will achieve the result of function convert
in class Magento\Quote\Model\Quote\Item\ToOrderITem
from the first line of this function $orderItem = $proceed($item, $additional);
.
Next, create the value of HelloWorldCustomData
for the result of function convert
class Magento\Quote\Model\Quote\Item\ToOrderItem
.
Then, return an object $orderItem
to recover result of the function convert
in the class Magento\Quote\Model\Quote\Item\ToOrderItem
.
That is all requirements every Magento 2 store owners should apply to copy custom data from quote item to order item
Please leave comments if you have any questions, feedbacks.