pos_bluetooth_thermal_printer/__manifest__.py

81 lines
3.2 KiB
Python
Executable File

# -*- 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',
}