How to Convert Custom Field From Quote Item to Order Item in Magento 2
We will learn about the way to copy data from quote item to order item in Magento 2, through the below instructions.
Usually, when customers add an item to the cart, it will be stored into the quote object. Sometimes, you will want to pass the cart value in the quote as an order object for easier access to the value. To do that, you need to convert your custom field from the quote to the order.
Therefore, in today’s post, we will learn about the way to convert custom field from quote item to order item in Magento 2. Follow the instruction below to successfully get the work done.
Overview of converting a custom feild from quote item to order item in Magento 2
- Step 1: Add a
di.xml
file - Step 2: Identify a code, a plugin
- Step 3: Add a class to your module, then identify a function
Step 1: Add a di.xml
file
In the module app/code/Mageplaza/HelloWorld/etc
, please add the di.xml
file.
Step 2: Identify a code, a plugin
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
Step 3: Add a class to your module, then identify a function
- In the module, add the class
Mageplaza\HelloWorld\Model\Plugin\Quote\HelloWorldToOrderItem
, and identify the functionaroundConvert
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 classMagento\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 functionconvert
classMagento\Quote\Model\Quote\Item\ToOrderItem
. -
Then, return an object
$orderItem
to recover result of the functionconvert
in the classMagento\Quote\Model\Quote\Item\ToOrderItem
.
Final words
That is all requirements every Magento 2 store owners should apply to copy custom data from quote item to order item. If you have any issues while following this tutorial, don’t hesitate to contact us. Thanks for reading!
Enjoyed the tutorial? Spread it to your friends!
Sam Thomas
CEO and Founder of Mageplaza. Pursueing a simple and healthy lifestyle. A friend, a husband and a dad of two children, a trainer and an influencer wannabe. He is a big fan of sports and travel, also.
Featured Extensions
People also searched for
- magento 2 how to copy custom data from quote item to order item
- magento 2 convert quote item to order item
- convert quote to order magento 2
- magento 2 add custom attribute to order item
- magento 2 convert quote to order
- magento 2 convert quote to order programmatically
- 2.2.x, 2.3.x, 2.4.x