Odoo 18中如何在POS产品界面读取会话数据中的用户自定义选项
Odoo 18中如何在POS产品界面读取会话数据中的用户自定义选项
没问题,我来帮你搞定这个问题!你已经在后端正确把用户自定义字段传递到POS会话数据里了,现在只需要在前端JS代码里正确读取这个值就行,很简单的~
具体操作步骤:
- 前端读取会话中的自定义字段
在Odoo 18的POS环境里,你后端通过_load_pos_data传递的自定义数据,会被挂载到this.env.pos.session对象下。所以直接在你的ProductScreen补丁里读取这个字段就可以了。
修改你的JS代码如下:
patch(ProductScreen.prototype, { async onProductInfoClick(product) { // 读取后端传递过来的用户自定义选项 const hideProductInfo = this.env.pos.session.hide_product_information; // 这里可以根据这个值实现你需要的逻辑,比如判断是否要展示产品信息 if (hideProductInfo) { console.log("需要隐藏产品信息"); // 举个例子:如果不想触发默认的产品信息弹窗,直接return就行 // return; } else { console.log("正常显示产品信息"); // 执行原有的产品信息点击逻辑 await super.onProductInfoClick(product); } } });
- 验证数据是否正常传递
你可以打开POS界面的浏览器开发者工具(按F12),在控制台输入this.env.pos.session,查看输出的对象里是否包含hide_product_information字段,确认后端数据已经正确传到前端。另外也要确保你的res.users模型确实存在hide_product_information这个字段,并且当前登录用户的字段值已经正确设置。
小提示:
修改完代码后,记得升级对应的模块,然后刷新POS界面(或者重启POS服务),这样新代码才能生效哦~
备注:内容来源于stack exchange,提问作者ahmed mohamady
相关产品推荐
相关产品推荐

