3.2 KiB
3.2 KiB
Fusion WooDoo — WordPress Plugin
What This Is
Thin WordPress/WooCommerce plugin that pairs with the fusion_woocommerce Odoo module. Receives data from Odoo, displays documents in the customer My Account portal, and fires webhooks to notify Odoo of WC events.
Architecture
- Receives from Odoo: REST endpoints accept order status, invoices, deliveries, messages
- Sends to Odoo: WooCommerce webhooks fire on order/product/customer events
- Displays to customers: My Account tabs for sales orders, invoices, deliveries, returns, order timeline
Key Files
fusion-woodoo.php — Plugin entry, activation/deactivation hooks
includes/class-fusion-woodoo.php — Singleton main class, loads all includes
includes/class-admin-settings.php — WP admin settings (Odoo URL, API key, toggles)
includes/class-rest-endpoints.php — REST API endpoints (receive from Odoo)
includes/class-webhooks.php — WC webhook registration/lifecycle
includes/class-my-account.php — My Account tab registration
includes/class-order-timeline.php — Visual order status timeline
includes/class-returns.php — Return/RMA request handling
includes/class-api-client.php — PHP client for calling Odoo API
templates/my-account/ — Customer portal templates
assets/css/my-account.css — Portal styles
assets/js/my-account.js — Portal JS (AJAX, reorder, returns)
Authentication
- Odoo → WP plugin: Odoo API key as bearer token in Authorization header
- WP plugin → Odoo: Not direct — uses WC webhooks which Odoo validates via HMAC
PDF Storage
- Invoices:
wp-content/uploads/fusion-woodoo/invoices/(.htaccessprotected) - Deliveries:
wp-content/uploads/fusion-woodoo/deliveries/(.htaccessprotected) - Served via PHP handler that validates user owns the order
WordPress Options
fusion_woodoo_odoo_url— Odoo instance URLfusion_woodoo_api_key— API key for Odoo authfusion_woodoo_show_sales_orders— Toggle sales orders tabfusion_woodoo_show_invoices— Toggle invoices tabfusion_woodoo_show_deliveries— Toggle deliveries tabfusion_woodoo_show_returns— Toggle returns tab
WooCommerce Order Meta Keys
_odoo_order_id,_odoo_invoice_id— Linked Odoo record IDs_odoo_invoice_pdf,_odoo_delivery_pdf— PDF file paths_odoo_tracking_number,_odoo_shipping_carrier— Shipping info_odoo_order_status— Status for timeline display_odoo_messages— JSON array of customer-visible messages
Deployment
# Deploy to westin WordPress
sshpass -p '9896924728Kk@@##' scp -r fusion-woo-odoo/fusion-woodoo/* westin@192.168.1.152:/tmp/fusion-woodoo/
sshpass -p '9896924728Kk@@##' ssh westin@192.168.1.152 "echo '9896924728Kk@@##' | sudo -S cp -r /tmp/fusion-woodoo/* /home/westinwp/htdocs/westinhealthcare.ca/wp-content/plugins/fusion-woodoo/"
Webhook Lifecycle
- Registered on plugin activation / settings save
- Unregistered on plugin deactivation
- Re-registered when Odoo URL changes
- Topics: order.created, order.updated, product.updated, customer.created, customer.updated
Requirements
- WordPress 6.0+
- WooCommerce 8.0+
- PHP 8.0+
- Odoo 19 with fusion_woocommerce module installed