# -*- coding: utf-8 -*- { 'name': 'POS Bluetooth Thermal Printer', 'version': '19.0.1.0.0', 'category': 'Point of Sale', 'summary': 'Connect POS to bluetooth thermal printers using Web Bluetooth API', 'description': """POS Bluetooth Thermal Printer ============================== This module enables Odoo 18 Point of Sale systems to print receipts directly to bluetooth-connected thermal printers (such as RPP02) using the ESC/POS protocol. Features: * Direct bluetooth connection to thermal printers via Web Bluetooth API * Automatic printer connection on POS session start * Auto-reconnection on connection drops with exponential backoff * Device-specific printer configuration stored in browser local storage * Multi-device support - each tablet/workstation can use different printers * ESC/POS command generation for proper receipt formatting * Graceful fallback to browser print dialog on failures * Real-time connection status indicator * Test print functionality for verification * Print errors never block sale completion Technical Details: * Uses Web Bluetooth API for direct browser-to-printer communication * Supports ESC/POS thermal printers * Client-side implementation (no server-side drivers needed) * HTTPS required (except localhost for testing) * Compatible with Chrome, Edge, and Opera browsers Supported Printers: * RPP02 Bluetooth Thermal Printer * Other ESC/POS compatible bluetooth thermal printers Requirements: * Browser with Web Bluetooth API support (Chrome 56+, Edge, Opera 43+) * HTTPS connection * Bluetooth-enabled device * ESC/POS compatible thermal printer """, 'author': 'Suherdy Yacob', 'depends': [ 'point_of_sale', ], 'data': [ 'security/ir.model.access.csv', 'views/pos_config_views.xml', ], 'assets': { 'point_of_sale._assets_pos': [ # Core services and utilities first 'pos_bluetooth_thermal_printer/static/src/js/storage_manager.js', 'pos_bluetooth_thermal_printer/static/src/js/escpos_generator.js', 'pos_bluetooth_thermal_printer/static/src/js/escpos_graphics.js', 'pos_bluetooth_thermal_printer/static/src/js/html_to_image.js', 'pos_bluetooth_thermal_printer/static/src/js/error_notification_service.js', 'pos_bluetooth_thermal_printer/static/src/js/bluetooth_printer_manager.js', # Components 'pos_bluetooth_thermal_printer/static/src/js/connection_status_widget.js', 'pos_bluetooth_thermal_printer/static/src/js/bluetooth_printer_config.js', # POS integrations (load after components) 'pos_bluetooth_thermal_printer/static/src/js/pos_session_integration.js', 'pos_bluetooth_thermal_printer/static/src/js/pos_receipt_printer.js', 'pos_bluetooth_thermal_printer/static/src/js/pos_navbar_extension.js', # Templates 'pos_bluetooth_thermal_printer/static/src/xml/**/*.xml', # Styles 'pos_bluetooth_thermal_printer/static/src/css/**/*.css', ], }, 'installable': True, 'auto_install': False, 'application': False, 'license': 'LGPL-3', }