feat: add cron jobs, sync engine scaffolding, log cleanup, and email templates

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-03-31 20:41:04 -04:00
parent 0ce599c4ac
commit 116c0b03bf
5 changed files with 201 additions and 1 deletions

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="cron_woo_sync_products" model="ir.cron">
<field name="name">WooCommerce: Sync Products</field>
<field name="model_id" ref="model_woo_instance"/>
<field name="state">code</field>
<field name="code">model._cron_sync_products()</field>
<field name="interval_number">15</field>
<field name="interval_type">minutes</field>
<field name="numbercall">-1</field>
<field name="active">True</field>
</record>
<record id="cron_woo_sync_orders" model="ir.cron">
<field name="name">WooCommerce: Sync Orders</field>
<field name="model_id" ref="model_woo_instance"/>
<field name="state">code</field>
<field name="code">model._cron_sync_orders()</field>
<field name="interval_number">5</field>
<field name="interval_type">minutes</field>
<field name="numbercall">-1</field>
<field name="active">True</field>
</record>
<record id="cron_woo_sync_inventory" model="ir.cron">
<field name="name">WooCommerce: Sync Inventory</field>
<field name="model_id" ref="model_woo_instance"/>
<field name="state">code</field>
<field name="code">model._cron_sync_inventory()</field>
<field name="interval_number">15</field>
<field name="interval_type">minutes</field>
<field name="numbercall">-1</field>
<field name="active">True</field>
</record>
<record id="cron_woo_sync_customers" model="ir.cron">
<field name="name">WooCommerce: Sync Customers</field>
<field name="model_id" ref="model_woo_instance"/>
<field name="state">code</field>
<field name="code">model._cron_sync_customers()</field>
<field name="interval_number">30</field>
<field name="interval_type">minutes</field>
<field name="numbercall">-1</field>
<field name="active">True</field>
</record>
<record id="cron_woo_cleanup_logs" model="ir.cron">
<field name="name">WooCommerce: Cleanup Old Sync Logs</field>
<field name="model_id" ref="model_woo_sync_log"/>
<field name="state">code</field>
<field name="code">model._cron_cleanup_logs()</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field name="active">True</field>
</record>
</odoo>

View File

@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="woo_sync_failure_notification" model="mail.template">
<field name="name">WooCommerce: Sync Failure Notification</field>
<field name="model_id" ref="model_woo_instance"/>
<field name="subject">WooCommerce Sync Failed: ${object.name}</field>
<field name="body_html"><![CDATA[
<p>Hello,</p>
<p>A WooCommerce sync has failed for the following instance:</p>
<ul>
<li><strong>Instance:</strong> ${object.name}</li>
<li><strong>Sync Type:</strong> ${ctx.get('sync_type', 'Unknown')}</li>
<li><strong>Error:</strong> ${ctx.get('error_message', 'No details available')}</li>
<li><strong>Timestamp:</strong> ${object.last_sync or 'N/A'}</li>
</ul>
<p>Please review your WooCommerce integration settings and resolve the issue.</p>
<p>— Fusion WooCommerce</p>
]]></field>
<field name="auto_delete">True</field>
</record>
<record id="woo_new_order_notification" model="mail.template">
<field name="name">WooCommerce: New Order Notification</field>
<field name="model_id" ref="model_woo_instance"/>
<field name="subject">New WooCommerce Order: ${ctx.get('order_number', '')}</field>
<field name="body_html"><![CDATA[
<p>Hello,</p>
<p>A new WooCommerce order has been received:</p>
<ul>
<li><strong>Order Number:</strong> ${ctx.get('order_number', 'N/A')}</li>
<li><strong>Customer:</strong> ${ctx.get('customer_name', 'N/A')}</li>
<li><strong>Total:</strong> $${ctx.get('order_total', '0.00')}</li>
</ul>
<p>Log in to Odoo to review and process this order.</p>
<p>— Fusion WooCommerce</p>
]]></field>
<field name="auto_delete">True</field>
</record>
</odoo>