ODX PHP POINT OF SALE
A streamlined, web-based POS system built with PHP and JavaScript, designed to interface seamlessly with Odoo via the ODX Proxy.
QUICK START
-
Clone the Project Open your terminal and run: git clone https://github.com/your-username/odx-php-pos.git cd odx-php-pos
-
Install Dependencies (Composer) This project uses Composer to manage Odoo communication libraries. Run: composer install
-
Configuration Create a config.php file in the root directory. This file is ignored by Git for security. PHP Example:
- Run the Project Start a local PHP development server: php -S localhost:8000 Visit http://localhost:8000 in your browser.
ODOO INTEGRATION REFERENCE
The system interacts with Odoo models using four primary methods. Here is how to use them within your PHP logic:
SEARCHREAD (FETCH DATA) Used to find records and return specific fields. $domain = [['available_in_pos', '=', true]]; $fields = ['id', 'name', 'list_price']; $products = Odx::searchRead('product.product', $domain, $fields);
CREATE (INSERT DATA) Used to create new records. Returns the ID of the new record. $data = [ 'session_id' => 12, 'amount_total' => 150.00, 'lines' => [ [0, 0, [ 'product_id' => 5, 'qty' => 2, 'price_unit' => 75.00, 'price_subtotal' => 150.00, 'price_subtotal_incl' => 150.00 ]] ], 'payment_ids' => [ [0, 0, ['amount' => 150.00, 'payment_method_id' => 1]] ] ]; $newOrderId = Odx::create('pos.order', $data);
WRITE (UPDATE DATA) Used to update existing records. Requires an array of IDs. $ids = [123]; $update = ['name' => 'Updated Product Name']; $success = Odx::write('product.product', $ids, $update);
CALL (EXECUTE LOGIC) Used to trigger Odoo "buttons" or backend methods. $sessionId = 12; $result = Odx::call('pos.session', 'action_pos_session_closing_control', [$sessionId]);
PROJECT STRUCTURE
index.php: The Frontend (HTML/Bootstrap/JavaScript).
api.php: The Backend Router (handles AJAX requests and Odoo Logic).
config.php: Private credentials (API keys and URLs).
.gitignore: Prevents sensitive files from being pushed to GitHub.
vendor/: Auto-generated folder containing PHP libraries.
SECURITY REQUIREMENTS
IMPORTANT: Never commit config.php. This file contains your Odoo secrets. Ensure your .gitignore includes config.php.
SSL/HTTPS: Always use HTTPS when deploying the ODX Proxy to ensure data between PHP and Odoo is encrypted.