Odoo14中修改POS端OrderReceipt客户订单小票不生效如何解决
解决Odoo POS订单小票模板继承不生效问题
按以下步骤逐一排查即可解决:
- 确认自定义模块已完成安装/升级:QWeb模板的修改不会自动生效,每次调整模板内容后都需要升级对应自定义模块,变更才会被Odoo后端读取。
- 核对模块清单配置:检查自定义模块的
__manifest__.py文件,确认你的xml文件路径已正确添加到qweb配置项的数组中,路径需为相对于模块根目录的相对路径,拼写错误、层级错误都会导致模板不加载。 - 匹配OWL版本与Odoo版本:你当前代码中写的
owl="1"仅适用于Odoo 15及更早版本(使用OWL1框架),如果你的Odoo版本为16及以上,需将owl="1"改为owl="2",OWL版本不匹配会直接导致继承失效。 - 优化XPath表达式:如果父模板的
pos-receipt类存在其他动态附加类,直接使用@class='pos-receipt'会匹配失败,建议替换为更稳妥的hasclass写法:expr="//div[hasclass('pos-receipt')]"。 - 清理POS前端缓存:POS前端会静态缓存模板资源,模块升级完成后需要完全关闭POS标签页、清理浏览器缓存后重新进入POS,直接刷新页面可能保留旧缓存导致新模板不生效。
修正后参考代码(Odoo 16+版本)
<?xml version="1.0" encoding="UTF-8"?> <templates id="template" xml:space="preserve"> <t t-name="custom_order_receipt" t-inherit="point_of_sale.OrderReceipt" t-inherit-mode="extension" owl="2"> <xpath expr="//div[hasclass('pos-receipt')]" position="replace"> <div> Hello</div> </xpath> </t> </templates>
内容的提问来源于stack exchange,提问作者Tessnim
相关产品推荐
相关产品推荐

