Odoo 19.4 临时修改前端打印机IP地址 - xiaohao0576/odoo-doc GitHub Wiki

打开POS界面,F12调出开发者模式,打开console

查看打印机列表和配置

// 1) 先拿到当前 POS 实例
const pos = window.posmodel || odoo.__WOWL_DEBUG__.root.env.services.pos;
const tp = pos.ticketPrinter;

// 2) 看当前前端已加载的打印机
const allLoaded = pos.models["pos.printer"].getAll();   // 所有已加载 pos.printer
const kitchen = tp.preparationPrinters;                 // 厨房单
const receipt = tp.receiptPrinters;                     // 小票单

console.table(allLoaded.map(p => ({
  id: p.id, name: p.name, use_type: p.use_type, printer_ip: p.printer_ip, use_lna: p.use_lna
})));

console.table(kitchen.map(p => ({
  id: p.id, name: p.name, printer_ip: p.printer_ip, use_lna: p.use_lna
})));

console.table(receipt.map(p => ({
  id: p.id, name: p.name, printer_ip: p.printer_ip, use_lna: p.use_lna
})));

修改打印机的配置

const newIp = "192.168.1.88";
const newUseLna = true;

tp.printers.forEach(p => {
  p.printer_ip = newIp;
  p.use_lna = newUseLna;
});

// 重新初始化前端打印实例,让新配置生效(不写后端)
await tp.initPrinters();

// 再确认
console.table(tp.printers.map(p => ({
  id: p.id, name: p.name, use_type: p.use_type, printer_ip: p.printer_ip, use_lna: p.use_lna
})));

精简命令,直接修改

const tp = posmodel.ticketPrinter;
const newIp = "tg855.hogantech.net/644909540";
const newUseLna = false;
tp.printers.forEach(p => {
  p.printer_ip = newIp;
  p.use_lna = newUseLna;
});
await tp.initPrinters();
console.table(tp.printers.map(p => ({
  id: p.id, name: p.name, use_type: p.use_type, printer_ip: p.printer_ip, use_lna: p.use_lna
})));