feat: add category mapping model and AI settings on woo.instance

Category mapping between Odoo product categories and WC categories with
auto-match by name and manual mapping UI. AI settings for Claude/OpenAI
with customizable prompts for product content generation. GPS coordinates
for image geo-tagging pulled from company settings.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-04-01 14:30:02 -04:00
parent 3179cc1f7b
commit 3493c43916
7 changed files with 210 additions and 0 deletions

View File

@@ -133,6 +133,60 @@
</list>
</field>
</page>
<page string="Category Mapping" name="category_mapping">
<div class="mb-2">
<button name="action_fetch_wc_categories" type="object"
string="Fetch WC Categories" class="btn btn-primary"/>
</div>
<field name="category_map_ids">
<list editable="bottom">
<field name="odoo_category_id" string="Odoo Category"/>
<field name="woo_category_name" string="WC Category Name" readonly="1"/>
<field name="woo_category_slug" string="WC Category Slug" readonly="1"/>
<field name="woo_category_id" string="WC ID" readonly="1"/>
</list>
</field>
</page>
<page string="AI Settings" name="ai_settings">
<group string="AI Provider">
<group>
<field name="ai_provider"/>
<field name="ai_api_key" password="True"/>
<field name="ai_model"/>
</group>
<group string="GPS Coordinates">
<field name="geo_lat"/>
<field name="geo_lng"/>
<field name="geo_company_name"/>
<field name="geo_company_address"/>
<field name="geo_company_phone"/>
</group>
</group>
<group string="Product Title Prompt">
<field name="prompt_product_title" nolabel="1" widget="text"/>
</group>
<group string="Short Description Prompt">
<field name="prompt_short_description" nolabel="1" widget="text"/>
</group>
<group string="Long Description Prompt">
<field name="prompt_long_description" nolabel="1" widget="text"/>
</group>
<group string="Meta Title Prompt">
<field name="prompt_meta_title" nolabel="1" widget="text"/>
</group>
<group string="Meta Description Prompt">
<field name="prompt_meta_description" nolabel="1" widget="text"/>
</group>
<group string="Image Alt Text Prompt">
<field name="prompt_image_alt" nolabel="1" widget="text"/>
</group>
<group string="Image Caption Prompt">
<field name="prompt_image_caption" nolabel="1" widget="text"/>
</group>
<group string="Keywords Prompt">
<field name="prompt_keywords" nolabel="1" widget="text"/>
</group>
</page>
</notebook>
</sheet>
<chatter/>