magento2 checkout totals添加产品属性
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添加产品属性相关推荐
- OpenXml开发-向Excel2007文档中添加数据
public static void Run() { // 打开Excel2007模板文档 using (PackageHelper ...
- 如何使WooCommerce产品属性更加突出
您将要创造的 WooCommerce产品属性是一个非常有用的功能,但是默认情况下,它们在页面的" 其他信息"部分中被隐藏了很深. 根据您的主题,在用户单击选项卡之前,它们可能不可见 ...
- Couldn‘t checkout branch_name: Revision not found in project_name git 分支无法checkout,切换分支报错
原因:git 分支无法checkout,添加的新分支在本地仓库没有同步 解决办法:同步远程分支至本地仓库 git remote updategit fetch
- 拖拽批量上传图片如何保证 顺序_新手指南︱shopee店铺上架产品该如何操作?...
很多刚开通shopee店铺的新手卖家不知道该如何上架产品,接下来就给大家整理下相关内容,希望对大家有所帮助. shopee上架产品操作:单个商品上传登录后台,进入我的商品(My Products),点 ...
- 【小程序案例】支付宝小程序-MQTT模器,IoT设备通过WSS接入阿里云IoT物联网平台...
支付宝小程序-MQTT模拟器通过WSS接入阿里云IoT物联网平台 准备工作 1.1 注册阿里云账号 开通阿里云账号,并通过支付宝实名认证 https://www.aliyun.com 1.2 免费开通 ...
- java 文件解签加签_将更改的文件移到另一个分支进行签入
这经常发生在我身上:我写了一些代码,检查我的更改,然后意识到我不在适当的分支中来检查那些更改. 但是,如果不还原更改,我将无法切换到另一个分支. 有没有办法将更改移动到另一个要在其中检查的分支? #1 ...
- FreeRTOS+STM32L+ESP8266+MQTT协议传输温湿度数据,控制继电器到阿里云物联网平台
一.准备材料 二.设备连接 2.1 插入模块.串口线 将ESP8266模块按照图中所示插入指定位置 将串口线一端插入到STM32L的USB口,另一端插入到电脑的USB口 2.2.连接ST-Link仿真 ...
- Git - 学习/实践 - 以及相关操作
1.环境 win10 64位 专业版 默认, 已安装git.[git bash]所有操作均在git bash 中. 2.使用 1. 文档阅读/查阅 https://git-scm.com/docsht ...
- archlinux安装到美化
1.archlinux的基本安装 1.1.停止reflector服务 禁止自动更新服务器列表 systemctl stop reflector.service 1.2.检查电脑是否支持UEFI引导模式 ...
最新文章
- linux64平台上编译32位程序: GCC编译选项 -m64 -m32 -mx32
- [翻译]Silverlight2 RC版本发布
- linux-telnet服务配置
- python模板语言_django的模板语言
- Layui form 表单验证 基本属性
- Linux下python执行Killed
- Junit 单元测试 mybatis
- 讲解HTML和CSS(超详细)
- 网页里面嵌入视频代码
- python入门教学反思_python函数--教学反思
- Discuznbsp;x2.5单页制作的教程
- mysql 性能优化方案
- 正规蓝牙耳机一般多少钱?音质好又便宜的蓝牙耳机
- python二级证书含金量排名_计算机二级证书的含金量不高?别小瞧,这些优势用处不小!...
- Mysql 认证步骤
- 76个常识,你知几个
- 角谷猜想(次数+过程)
- 迸发中的小i机器人,2018年多处开花
- sql server高级查询及更新操作二
- 新小米手机--首次使用
热门文章
- 正则表达式中,[\s\S]*
- 2018.6.5今天跟着视频做了一个提交Todolist
- 实例:从一个文件中读取销售记录,并合并生成销售报告,实现销售册数,总销售额,平均售价...
- 让我的网站变成响应式的3个简单步骤
- USB和USB2.0万能驱动
- 云原生分布式应用运行时 Dapr 在阿里的实践
- 请解释各种自动装配模式的区别
- ShardingSphere(二) 水平分表配置搭建,实现分表写入读取
- 20190520算法题存档
- 安装使用sublime 对比工具sublimerge