Magento 2中将报价项目中的自定义字段转换为订单项目

今天,我们将通过以下说明了解如何将自定义字段从报价项目转换为 Magento 2中的订单项目

在Magento 2中将自定义组件从报价项目转换为订单项目的概述

  • 第1步:添加di.xml文件
  • 第2步:识别代码,插件
  • 第3步:向您的模块添加一个类,然后识别一个函数

第1步:添加di.xml文件

在模块中app/code/Mageplaza/HelloWorld/etc,请添加该di.xml文件。

第2步:识别代码,插件

di.xml文件中,让我们识别一个代码:

<type name="Magento\Quote\Model\Quote\Item\ToOrderItem">
        <plugin name="HelloWorld_to_order_item" type="Mageplaza\HelloWorld\Model\Plugin\Quote\HelloWorldToOrderItem"/>
</type>

然后,确定一个插件 Mageplaza\HelloWorld\Model\Plugin\Quote\HelloWorldToOrderItem” of class “Magento\Quote\Model\Quote\Item\ToOrderItem

第3步:向您的模块添加一个类,然后识别一个函数

  • 在模块中,添加类Mageplaza\HelloWorld\Model\Plugin\Quote\HelloWorldToOrderItem,并标识aroundConvert将自定义数据从报价项同时转换为订单项的功能。
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;
    }
  • 您将从该函数的第一行获得convert类中函数的结果。Magento\Quote\Model\Quote\Item\ToOrderITem$orderItem = $proceed($item, $additional);
  • 接下来,HelloWorldCustomData为函数convert类的结果创建值Magento\Quote\Model\Quote\Item\ToOrderItem
  • 然后,返回一个对象$orderItem以恢复convert该类中函数的结果Magento\Quote\Model\Quote\Item\ToOrderItem

这就是每个Magento 2商店所有者应该应用于从报价项目到订单项目复制自定义数据的所有要求

相关文章

0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论