Files
gsinghpal 41d0908ade changes
2026-04-24 21:04:38 -04:00

22 KiB

Graph Report - /Users/gurpreet/Github/Odoo-Modules/fusion-woo-odoo (2026-04-22)

Corpus Check

  • 54 files · ~29,134 words
  • Verdict: corpus is large enough that graph structure adds value.

Summary

  • 526 nodes · 866 edges · 61 communities detected
  • Extraction: 74% EXTRACTED · 26% INFERRED · 0% AMBIGUOUS · INFERRED: 229 edges (avg confidence: 0.71)
  • Token cost: 0 input · 0 output

Community Hubs (Navigation)

God Nodes (most connected - your core abstractions)

  1. WooApiClient - 82 edges
  2. ProductMapping - 65 edges
  3. WooInstance - 31 edges
  4. AIService - 20 edges
  5. WooProductCreateWizard - 18 edges
  6. WooDashboard - 16 edges
  7. ImageProcessor - 16 edges
  8. WooProductMap - 14 edges
  9. WooOrder - 10 edges
  10. Fusion_WooDoo_Admin_Settings - 10 edges

Surprising Connections (you probably didn't know these)

  • Push selected variants to WooCommerce. --uses--> ImageProcessor [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion-woo-odoo/fusion_woocommerce/wizard/woo_variant_push.py → /Users/gurpreet/Github/Odoo-Modules/fusion-woo-odoo/fusion_woocommerce/lib/image_processor.py
  • Fetch all WooCommerce categories and display for mapping. --uses--> WooApiClient [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion-woo-odoo/fusion_woocommerce/models/woo_instance.py → /Users/gurpreet/Github/Odoo-Modules/fusion-woo-odoo/fusion_woocommerce/lib/woo_api_client.py
  • Fetch WooCommerce tax classes for mapping. --uses--> WooApiClient [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion-woo-odoo/fusion_woocommerce/models/woo_instance.py → /Users/gurpreet/Github/Odoo-Modules/fusion-woo-odoo/fusion_woocommerce/lib/woo_api_client.py
  • Return a WooApiClient instance for this WooCommerce connection. --uses--> WooApiClient [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion-woo-odoo/fusion_woocommerce/models/woo_instance.py → /Users/gurpreet/Github/Odoo-Modules/fusion-woo-odoo/fusion_woocommerce/lib/woo_api_client.py
  • Test the WooCommerce connection and update state. --uses--> WooApiClient [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion-woo-odoo/fusion_woocommerce/models/woo_instance.py → /Users/gurpreet/Github/Odoo-Modules/fusion-woo-odoo/fusion_woocommerce/lib/woo_api_client.py

Communities

Community 0 - "Community 0"

Cohesion: 0.06 Nodes (31): _find_or_create(), WooCustomer, _cron_health_check(), _cron_sync_customers(), _cron_sync_inventory(), _cron_sync_orders(), _cron_sync_products(), Sync product prices between Odoo and WooCommerce. (+23 more)

Community 1 - "Community 1"

Cohesion: 0.05 Nodes (1): ProductMapping

Community 2 - "Community 2"

Cohesion: 0.05 Nodes (25): Receive order.created / order.updated from WooCommerce., Receive product.updated from WooCommerce., Receive customer.created / customer.updated from WooCommerce., Return True if the IP is within rate limits, False if exceeded., _CircuitBreaker, Per-host circuit breaker: CLOSED → OPEN after N failures, auto-resets after, Create multiple variations at once using WC batch endpoint., Simple token-bucket rate limiter. Tokens refill at rate per second up to (+17 more)

Community 3 - "Community 3"

Cohesion: 0.07 Nodes (25): AIService, Args: provider: 'claude' or 'openai' api_key: API key fo, Generate a single field using the given prompt., Generate SEO metadata for a product image. Returns: dict wi, Generate text using the configured AI provider., Generate all product content at once. Args: product_info: d, AI content generation service supporting Claude and OpenAI., _decimal_to_dms() (+17 more)

Community 4 - "Community 4"

Cohesion: 0.06 Nodes (18): AccountMove, Override to auto-push invoice PDF to WooCommerce on posting., Override to auto-create shipment and push tracking to WC., StockPicking, _onchange_woo_status(), Push shipping/tracking info to WooCommerce and update status., Mark WC order as completed., Render invoice PDF and push to WC via custom plugin endpoint. (+10 more)

Community 5 - "Community 5"

Cohesion: 0.08 Nodes (14): Push all Odoo prices to WooCommerce for mapped products., Pull all WC prices to Odoo for mapped products., Push all Odoo SKUs to WooCommerce., Pull all WC SKUs to Odoo., Set the WC standard (regular) price directly., Set the WC sale price directly., Create an Odoo product from WC mapping data, link the mapping, and retur, Copy WC SKU to Odoo internal reference. (+6 more)

Community 6 - "Community 6"

Cohesion: 0.11 Nodes (3): Fusion_WooDoo_API_Client, Fusion_WooDoo_Returns, WooSetupWizard

Community 7 - "Community 7"

Cohesion: 0.16 Nodes (12): _check_rate_limit(), _normalize_url(), Strip trailing slashes and lowercase for comparison., Receive inbound WooCommerce webhook deliveries., Find a woo.instance matching the webhook source URL., Return 200 for WooCommerce webhook test deliveries., Common handler for all webhook endpoints. - Rate limits by IP -, webhook_customer() (+4 more)

Community 8 - "Community 8"

Cohesion: 0.15 Nodes (1): WooDashboard

Community 9 - "Community 9"

Cohesion: 0.14 Nodes (2): Fusion_WooDoo_Admin_Settings, Fusion_WooDoo_Webhooks

Community 10 - "Community 10"

Cohesion: 0.29 Nodes (8): order_documents(), order_messages(), order_status(), REST endpoints consumed by the WooCommerce WordPress plugin., Validate Bearer token from Authorization header against woo.instance.odoo_api_ke, Look up a woo.order by WC order ID for a given instance., return_create(), WooApiController

Community 11 - "Community 11"

Cohesion: 0.24 Nodes (5): Resolve conflict by pushing Odoo value to WooCommerce., Resolve conflict by pulling WooCommerce value into Odoo., Server action: resolve all selected conflicts with Odoo values., Server action: resolve all selected conflicts with WC values., WooConflict

Community 12 - "Community 12"

Cohesion: 0.24 Nodes (1): Fusion_WooDoo_REST_Endpoints

Community 13 - "Community 13"

Cohesion: 0.28 Nodes (1): Fusion_WooDoo

Community 14 - "Community 14"

Cohesion: 0.29 Nodes (4): default_get(), Save the hidden categories to the instance., Remove all hidden categories., WooCategoryFilter

Community 15 - "Community 15"

Cohesion: 0.29 Nodes (2): AJAX search endpoints used by the product mapping UI., WooProductSearchController

Community 16 - "Community 16"

Cohesion: 0.29 Nodes (1): Fusion_WooDoo_My_Account

Community 17 - "Community 17"

Cohesion: 0.33 Nodes (2): Manual purge: delete success logs > 7 days, error logs > 30 days., WooSyncLog

Community 18 - "Community 18"

Cohesion: 0.4 Nodes (1): AjaxSearch

Community 19 - "Community 19"

Cohesion: 0.5 Nodes (1): Fusion_WooDoo_Order_Timeline

Community 20 - "Community 20"

Cohesion: 0.67 Nodes (1): WooProductFetch

Community 21 - "Community 21"

Cohesion: 0.67 Nodes (1): WooPricelistMap

Community 22 - "Community 22"

Cohesion: 0.67 Nodes (1): SaleOrder

Community 23 - "Community 23"

Cohesion: 0.67 Nodes (1): ResPartner

Community 24 - "Community 24"

Cohesion: 1.0 Nodes (1): WooShipment

Community 25 - "Community 25"

Cohesion: 1.0 Nodes (1): WooShippingCarrier

Community 26 - "Community 26"

Cohesion: 1.0 Nodes (1): WooCategoryMap

Community 27 - "Community 27"

Cohesion: 1.0 Nodes (0):

Community 28 - "Community 28"

Cohesion: 1.0 Nodes (0):

Community 29 - "Community 29"

Cohesion: 1.0 Nodes (0):

Community 30 - "Community 30"

Cohesion: 1.0 Nodes (0):

Community 31 - "Community 31"

Cohesion: 1.0 Nodes (0):

Community 32 - "Community 32"

Cohesion: 1.0 Nodes (1): Return the Odoo product.pricelist mapped to a WC customer role. Args:

Community 33 - "Community 33"

Cohesion: 1.0 Nodes (1): Return the Odoo account.tax mapped to a WC tax class. Args:

Community 34 - "Community 34"

Cohesion: 1.0 Nodes (1): Return the WC tax class slug mapped to an Odoo tax. Args: i

Community 35 - "Community 35"

Cohesion: 1.0 Nodes (1): Find or create a woo.customer + res.partner for the given email. Args:

Community 36 - "Community 36"

Cohesion: 1.0 Nodes (1): Purge success/conflict logs older than 30 days, errors older than 90.

Community 37 - "Community 37"

Cohesion: 1.0 Nodes (1): Clear all failed sync log entries. Called from dashboard.

Community 38 - "Community 38"

Cohesion: 1.0 Nodes (1): Write EXIF metadata with company info and GPS coordinates. Args:

Community 39 - "Community 39"

Cohesion: 1.0 Nodes (1): Convert decimal degrees to EXIF DMS format (degrees, minutes, seconds as rationa

Community 40 - "Community 40"

Cohesion: 1.0 Nodes (1): Prepare image data for WooCommerce upload. Returns dict ready for WC pr

Community 41 - "Community 41"

Cohesion: 1.0 Nodes (1): Verify a WooCommerce webhook HMAC-SHA256 signature.

Community 42 - "Community 42"

Cohesion: 1.0 Nodes (1): Search Odoo products by name or internal reference (SKU). Params:

Community 43 - "Community 43"

Cohesion: 1.0 Nodes (1): Search unmapped WooCommerce products from the woo.product.map model. Pa

Community 44 - "Community 44"

Cohesion: 1.0 Nodes (1): Return all Odoo product categories for filtering.

Community 45 - "Community 45"

Cohesion: 1.0 Nodes (1): Search mapped WooCommerce ↔ Odoo product pairs. Params: que

Community 46 - "Community 46"

Cohesion: 1.0 Nodes (1): Serve a variant image from the transient wizard line. Used by WC to down

Community 47 - "Community 47"

Cohesion: 1.0 Nodes (1): Fetch invoice and delivery PDF URLs for a WooCommerce order. Expected p

Community 48 - "Community 48"

Cohesion: 1.0 Nodes (1): Fetch order status and timeline data for a WooCommerce order. Expected

Community 49 - "Community 49"

Cohesion: 1.0 Nodes (1): Fetch customer-visible messages for a WooCommerce order. Expected paylo

Community 50 - "Community 50"

Cohesion: 1.0 Nodes (1): Submit a return request from the WooCommerce plugin. Expected payload:

Community 51 - "Community 51"

Cohesion: 1.0 Nodes (0):

Community 52 - "Community 52"

Cohesion: 1.0 Nodes (0):

Community 53 - "Community 53"

Cohesion: 1.0 Nodes (0):

Community 54 - "Community 54"

Cohesion: 1.0 Nodes (0):

Community 55 - "Community 55"

Cohesion: 1.0 Nodes (0):

Community 56 - "Community 56"

Cohesion: 1.0 Nodes (0):

Community 57 - "Community 57"

Cohesion: 1.0 Nodes (0):

Community 58 - "Community 58"

Cohesion: 1.0 Nodes (0):

Community 59 - "Community 59"

Cohesion: 1.0 Nodes (0):

Community 60 - "Community 60"

Cohesion: 1.0 Nodes (0):

Knowledge Gaps

  • 82 isolated node(s): Save the hidden categories to the instance., Remove all hidden categories., Set woo_status and auto-map to Odoo state., Push shipping/tracking info to WooCommerce and update status., Mark WC order as completed. (+77 more) These have ≤1 connection - possible missing edges or undocumented components.
  • Thin community Community 24 (2 nodes): woo_shipment.py, WooShipment Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 25 (2 nodes): woo_shipping_carrier.py, WooShippingCarrier Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 26 (2 nodes): woo_category_map.py, WooCategoryMap Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 27 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 28 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 29 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 30 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 31 (1 nodes): __manifest__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 32 (1 nodes): Return the Odoo product.pricelist mapped to a WC customer role. Args: Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 33 (1 nodes): Return the Odoo account.tax mapped to a WC tax class. Args: Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 34 (1 nodes): Return the WC tax class slug mapped to an Odoo tax. Args: i Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 35 (1 nodes): Find or create a woo.customer + res.partner for the given email. Args: Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 36 (1 nodes): Purge success/conflict logs older than 30 days, errors older than 90. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 37 (1 nodes): Clear all failed sync log entries. Called from dashboard. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 38 (1 nodes): Write EXIF metadata with company info and GPS coordinates. Args: Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 39 (1 nodes): Convert decimal degrees to EXIF DMS format (degrees, minutes, seconds as rationa Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 40 (1 nodes): Prepare image data for WooCommerce upload. Returns dict ready for WC pr Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 41 (1 nodes): Verify a WooCommerce webhook HMAC-SHA256 signature. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 42 (1 nodes): Search Odoo products by name or internal reference (SKU). Params: Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 43 (1 nodes): Search unmapped WooCommerce products from the woo.product.map model. Pa Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 44 (1 nodes): Return all Odoo product categories for filtering. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 45 (1 nodes): Search mapped WooCommerce ↔ Odoo product pairs. Params: que Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 46 (1 nodes): Serve a variant image from the transient wizard line. Used by WC to down Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 47 (1 nodes): Fetch invoice and delivery PDF URLs for a WooCommerce order. Expected p Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 48 (1 nodes): Fetch order status and timeline data for a WooCommerce order. Expected Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 49 (1 nodes): Fetch customer-visible messages for a WooCommerce order. Expected paylo Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 50 (1 nodes): Submit a return request from the WooCommerce plugin. Expected payload: Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 51 (1 nodes): fusion-woodoo.php Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 52 (1 nodes): settings.php Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 53 (1 nodes): returns.php Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 54 (1 nodes): deliveries.php Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 55 (1 nodes): order-timeline.php Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 56 (1 nodes): sales-orders.php Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 57 (1 nodes): communication.php Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 58 (1 nodes): invoices.php Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 59 (1 nodes): my-account.js Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 60 (1 nodes): admin.js Too small to be a meaningful cluster - may be noise or needs more connections extracted.

Suggested Questions

Questions this graph is uniquely positioned to answer:

  • Why does WooApiClient connect Community 2 to Community 0, Community 4, Community 5, Community 6, Community 7? High betweenness centrality (0.170) - this node is a cross-community bridge.
  • Why does AIService connect Community 3 to Community 4? High betweenness centrality (0.034) - this node is a cross-community bridge.
  • Why does WooInstance connect Community 0 to Community 2, Community 5? High betweenness centrality (0.033) - this node is a cross-community bridge.
  • Are the 48 inferred relationships involving WooApiClient (e.g. with WooSetupWizard and WooInstance) actually correct? WooApiClient has 48 INFERRED edges - model-reasoned connections that need verification.
  • Are the 12 inferred relationships involving AIService (e.g. with WooProductCreateVariantLine and WooProductCreateWizard) actually correct? AIService has 12 INFERRED edges - model-reasoned connections that need verification.
  • Are the 2 inferred relationships involving WooProductCreateWizard (e.g. with AIService and ImageProcessor) actually correct? WooProductCreateWizard has 2 INFERRED edges - model-reasoned connections that need verification.
  • What connects Save the hidden categories to the instance., Remove all hidden categories., Set woo_status and auto-map to Odoo state. to the rest of the system? 82 weakly-connected nodes found - possible documentation gaps or missing edges.