totals items的数据流程

  • MagentoQuoteModelCartTotalsItem(MagentoQuoteApiDataTotalsItemInterface)

  • MagentoCheckoutModelDefaultConfigProvider::getConfig()

  • MagentoCheckoutBlockOnepage::getCheckoutConfig()

  • window.checkoutConfig.totalsData.items

  • quote.totals().items (Magento_Checkout/js/model/quote as quote)

可用plugin修改Magento\Checkout\Model\DefaultConfigProvider::getConfig()来改变totals items

以下是为totals 中的product item添加brand属性的过程

etc/frontend/di.xml

<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"><type name="Magento\Checkout\Model\DefaultConfigProvider"><plugin name="infinity_checkout_model_defaultconfigprovider" type="Infinity\Checkout\Plugin\Magento\Checkout\Model\DefaultConfigProvider" /></type>
</config>
namespace Infinity\Checkout\Plugin\Magento\Checkout\Model;class DefaultConfigProvider
{protected $productRepository;public function __construct(\Magento\Catalog\Model\ProductRepository $productRepository) {$this->productRepository = $productRepository;}public function afterGetConfig(\Magento\Checkout\Model\DefaultConfigProvider $subject, $return) {if(!empty($return['totalsData']['items']) &&is_array($return['totalsData']['items']) &&!empty($return['quoteItemData']) &&is_array($return['quoteItemData'])) {$items = $return['totalsData']['items'];$quoteItemData = $return['quoteItemData'];$quoteItemData = array_column($quoteItemData, NULL, 'item_id');foreach($items as $key => $item) {$id = $quoteItemData[$item['item_id']]['product_id'];if($id) {$product = $this->productRepository->getById($id);$items[$key]['brand'] = $product->getAttributeText('general_brand');}}$return['totalsData']['items'] = $items;}return $return;}
}

magento2 checkout totals添加产品属性相关推荐

  1. OpenXml开发-向Excel2007文档中添加数据

    public static void Run()         {              // 打开Excel2007模板文档             using (PackageHelper ...

  2. 如何使WooCommerce产品属性更加突出

    您将要创造的 WooCommerce产品属性是一个非常有用的功能,但是默认情况下,它们在页面的" 其他信息"部分中被隐藏了很深. 根据您的主题,在用户单击选项卡之前,它们可能不可见 ...

  3. Couldn‘t checkout branch_name: Revision not found in project_name git 分支无法checkout,切换分支报错

    原因:git 分支无法checkout,添加的新分支在本地仓库没有同步 解决办法:同步远程分支至本地仓库 git remote updategit fetch

  4. 拖拽批量上传图片如何保证 顺序_新手指南︱shopee店铺上架产品该如何操作?...

    很多刚开通shopee店铺的新手卖家不知道该如何上架产品,接下来就给大家整理下相关内容,希望对大家有所帮助. shopee上架产品操作:单个商品上传登录后台,进入我的商品(My Products),点 ...

  5. 【小程序案例】支付宝小程序-MQTT模器,IoT设备通过WSS接入阿里云IoT物联网平台...

    支付宝小程序-MQTT模拟器通过WSS接入阿里云IoT物联网平台 准备工作 1.1 注册阿里云账号 开通阿里云账号,并通过支付宝实名认证 https://www.aliyun.com 1.2 免费开通 ...

  6. java 文件解签加签_将更改的文件移到另一个分支进行签入

    这经常发生在我身上:我写了一些代码,检查我的更改,然后意识到我不在适当的分支中来检查那些更改. 但是,如果不还原更改,我将无法切换到另一个分支. 有没有办法将更改移动到另一个要在其中检查的分支? #1 ...

  7. FreeRTOS+STM32L+ESP8266+MQTT协议传输温湿度数据,控制继电器到阿里云物联网平台

    一.准备材料 二.设备连接 2.1 插入模块.串口线 将ESP8266模块按照图中所示插入指定位置 将串口线一端插入到STM32L的USB口,另一端插入到电脑的USB口 2.2.连接ST-Link仿真 ...

  8. Git - 学习/实践 - 以及相关操作

    1.环境 win10 64位 专业版 默认, 已安装git.[git bash]所有操作均在git bash 中. 2.使用 1. 文档阅读/查阅 https://git-scm.com/docsht ...

  9. archlinux安装到美化

    1.archlinux的基本安装 1.1.停止reflector服务 禁止自动更新服务器列表 systemctl stop reflector.service 1.2.检查电脑是否支持UEFI引导模式 ...

最新文章

  1. linux64平台上编译32位程序: GCC编译选项 -m64 -m32 -mx32
  2. [翻译]Silverlight2 RC版本发布
  3. linux-telnet服务配置
  4. python模板语言_django的模板语言
  5. Layui form 表单验证 基本属性
  6. Linux下python执行Killed
  7. Junit 单元测试 mybatis
  8. 讲解HTML和CSS(超详细)
  9. 网页里面嵌入视频代码
  10. python入门教学反思_python函数--教学反思
  11. Discuznbsp;x2.5单页制作的教程
  12. mysql 性能优化方案
  13. 正规蓝牙耳机一般多少钱?音质好又便宜的蓝牙耳机
  14. python二级证书含金量排名_计算机二级证书的含金量不高?别小瞧,这些优势用处不小!...
  15. Mysql 认证步骤
  16. 76个常识,你知几个
  17. 角谷猜想(次数+过程)
  18. 迸发中的小i机器人,2018年多处开花
  19. sql server高级查询及更新操作二
  20. 新小米手机--首次使用

热门文章

  1. 正则表达式中,[\s\S]*
  2. 2018.6.5今天跟着视频做了一个提交Todolist
  3. 实例:从一个文件中读取销售记录,并合并生成销售报告,实现销售册数,总销售额,平均售价...
  4. 让我的网站变成响应式的3个简单步骤
  5. USB和USB2.0万能驱动
  6. 云原生分布式应用运行时 Dapr 在阿里的实践
  7. 请解释各种自动装配模式的区别
  8. ShardingSphere(二) 水平分表配置搭建,实现分表写入读取
  9. 20190520算法题存档
  10. 安装使用sublime 对比工具sublimerge