pos_bluetooth_thermal_printer/__manifest__.py

82 lines
3.4 KiB
Python

# -*- coding: utf-8 -*-
{
'name': 'POS Bluetooth Thermal Printer',
'version': '18.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',
}