82 lines
3.4 KiB
Python
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',
|
|
}
|