- AjaxSearch component: debounced 300ms, calls /woo/search/* endpoints via rpc() - ProductMapping client action: 3 tabs (Mapped, Unmatched, Conflicts) - Mapped tab: live search, bulk unmap/sync, per-row price/inventory sync toggles - Unmatched tab: split Odoo|WC panels, click-to-select, Map/Create/Ignore actions - Conflicts tab: Use Odoo / Use WC per-row and bulk resolve - Top bar: instance selector, Fetch Products, Sync Now, live stats - woo_dashboard.xml updated with ir.actions.client records - woo_menus.xml pointed at new client action - CSS: full layout styles, badges, split view, progress bar, buttons Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
96 lines
2.8 KiB
XML
96 lines
2.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
|
|
<!-- ===== Top-Level Menu ===== -->
|
|
<menuitem id="woo_menu_root"
|
|
name="WooCommerce"
|
|
web_icon="fusion_woocommerce,static/description/icon.png"
|
|
sequence="100"/>
|
|
|
|
<!-- ===== Dashboard ===== -->
|
|
<menuitem id="woo_menu_dashboard"
|
|
name="Dashboard"
|
|
parent="woo_menu_root"
|
|
action="action_woo_dashboard"
|
|
sequence="10"/>
|
|
|
|
<!-- ===== Operations ===== -->
|
|
<menuitem id="woo_menu_operations"
|
|
name="Operations"
|
|
parent="woo_menu_root"
|
|
sequence="20"/>
|
|
|
|
<menuitem id="woo_menu_product_map"
|
|
name="Product Mapping"
|
|
parent="woo_menu_operations"
|
|
action="action_woo_product_map_ui"
|
|
sequence="10"/>
|
|
|
|
<menuitem id="woo_menu_orders"
|
|
name="Orders"
|
|
parent="woo_menu_operations"
|
|
action="action_woo_order"
|
|
sequence="20"/>
|
|
|
|
<menuitem id="woo_menu_customers"
|
|
name="Customers"
|
|
parent="woo_menu_operations"
|
|
action="action_woo_customer"
|
|
sequence="30"/>
|
|
|
|
<menuitem id="woo_menu_returns"
|
|
name="Returns"
|
|
parent="woo_menu_operations"
|
|
action="action_woo_return"
|
|
sequence="40"/>
|
|
|
|
<!-- ===== Monitoring ===== -->
|
|
<menuitem id="woo_menu_monitoring"
|
|
name="Monitoring"
|
|
parent="woo_menu_root"
|
|
sequence="30"/>
|
|
|
|
<menuitem id="woo_menu_sync_log"
|
|
name="Sync Logs"
|
|
parent="woo_menu_monitoring"
|
|
action="action_woo_sync_log"
|
|
sequence="10"/>
|
|
|
|
<menuitem id="woo_menu_conflicts"
|
|
name="Conflicts"
|
|
parent="woo_menu_monitoring"
|
|
action="action_woo_conflict"
|
|
sequence="20"/>
|
|
|
|
<!-- ===== Configuration ===== -->
|
|
<menuitem id="woo_menu_config"
|
|
name="Configuration"
|
|
parent="woo_menu_root"
|
|
sequence="40"/>
|
|
|
|
<menuitem id="woo_menu_instances"
|
|
name="Instances"
|
|
parent="woo_menu_config"
|
|
action="action_woo_instance"
|
|
sequence="10"/>
|
|
|
|
<menuitem id="woo_menu_shipping_carriers"
|
|
name="Shipping Carriers"
|
|
parent="woo_menu_config"
|
|
action="action_woo_shipping_carrier"
|
|
sequence="20"/>
|
|
|
|
<menuitem id="woo_menu_tax_map"
|
|
name="Tax Mapping"
|
|
parent="woo_menu_config"
|
|
action="action_woo_tax_map"
|
|
sequence="30"/>
|
|
|
|
<menuitem id="woo_menu_pricelist_map"
|
|
name="Price List Mapping"
|
|
parent="woo_menu_config"
|
|
action="action_woo_pricelist_map"
|
|
sequence="40"/>
|
|
|
|
</odoo>
|