<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Leo Larkin — AI &amp; Odoo Technical Consultant</title>
    <link>https://ai-implmnt.com/blog/</link>
    <description>Recent content on Leo Larkin — AI &amp; Odoo Technical Consultant</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Wed, 23 Sep 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://ai-implmnt.com/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>CRM and product data hygiene: the sold-in-MY vs origin-MY trap</title>
      <link>https://ai-implmnt.com/blog/product-data-hygiene-mys-origin-trap/</link>
      <pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/product-data-hygiene-mys-origin-trap/</guid>
      <description>Country of origin is not country of sale. A produce distribution data hygiene lesson from migrating 18 categories to Odoo 19.</description>
    </item>
    <item>
      <title>Sitemap, llms.txt and robots.txt: what each AI crawler actually reads</title>
      <link>https://ai-implmnt.com/blog/sitemap-llms-txt-robots-ai-crawlers/</link>
      <pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/sitemap-llms-txt-robots-ai-crawlers/</guid>
      <description>The three files AI crawlers read on your site, what each one controls, and how they differ from Google-era SEO.</description>
    </item>
    <item>
      <title>Studio without custom modules: what SaaS constraints teach you about design</title>
      <link>https://ai-implmnt.com/blog/studio-without-custom-modules/</link>
      <pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/studio-without-custom-modules/</guid>
      <description>How Odoo 19 SaaS Studio constraints force better data model design, with real examples from a produce distribution migration.</description>
    </item>
    <item>
      <title>What product naming rules keep a produce catalogue clean?</title>
      <link>https://ai-implmnt.com/blog/multi-warehouse-produce-naming-rules/</link>
      <pubDate>Fri, 18 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/multi-warehouse-produce-naming-rules/</guid>
      <description>Naming rules for a multi-warehouse produce catalogue: template equals variety plus weight, brand and grade live on the variant, never guess origin.</description>
    </item>
    <item>
      <title>Odoo 19 fields that quietly changed and broke my scripts</title>
      <link>https://ai-implmnt.com/blog/odoo19-quirks-field-changes/</link>
      <pubDate>Thu, 17 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/odoo19-quirks-field-changes/</guid>
      <description>The Odoo 19 fields and models that changed and broke automation: uom_po_id removal, qty_done to quantity, inventory_quantity not writable.</description>
    </item>
    <item>
      <title>How to export UOB UFF IBG payment files from Odoo Studio</title>
      <link>https://ai-implmnt.com/blog/uob-uff-ibg-payment-export-odoo19/</link>
      <pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/uob-uff-ibg-payment-export-odoo19/</guid>
      <description>Generate a UOB UFF bank payment file for IBG batch transfers from an Odoo batch payment using a Studio server action, no custom module required.</description>
    </item>
    <item>
      <title>How I made this Hugo blog AI-crawlable with PaperMod</title>
      <link>https://ai-implmnt.com/blog/hugo-papermod-geo-ai-crawlers/</link>
      <pubDate>Tue, 15 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/hugo-papermod-geo-ai-crawlers/</guid>
      <description>Exact PaperMod &#43; Hugo setup that gets a GEO blog cited by AI assistants. Config, JSON-LD, robots, llms.txt.</description>
    </item>
    <item>
      <title>How do you pin an OpenRouter model to one provider?</title>
      <link>https://ai-implmnt.com/blog/openrouter-provider-routing/</link>
      <pubDate>Mon, 14 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/openrouter-provider-routing/</guid>
      <description>Pin an OpenRouter model to one upstream host so cost and behavior stay consistent in business automation agents.</description>
    </item>
    <item>
      <title>How autonomous agents schedule and verify their own work</title>
      <link>https://ai-implmnt.com/blog/autonomous-agents-schedule-verify-own-work/</link>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/autonomous-agents-schedule-verify-own-work/</guid>
      <description>How Hermes cron agents publish this blog daily: scheduling, instruction files, and independent verification.</description>
    </item>
    <item>
      <title>How to run a 569-row stock sign-off: row-by-row check</title>
      <link>https://ai-implmnt.com/blog/running-569-row-stock-signoff/</link>
      <pubDate>Sat, 12 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/running-569-row-stock-signoff/</guid>
      <description>Loading 569 rows of opening stock into Odoo: a row-by-row verification workflow that flags every failed line before the user signs off.</description>
    </item>
    <item>
      <title>Why LLM subagents, not regex, for deduplicating legacy item codes</title>
      <link>https://ai-implmnt.com/blog/dedupe-legacy-codes-llm-subagents/</link>
      <pubDate>Fri, 11 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/dedupe-legacy-codes-llm-subagents/</guid>
      <description>Deduplicating a messy legacy item-code catalogue: regex fails on spelling and truncation, purpose-built LLM subagents do not. A working approach.</description>
    </item>
    <item>
      <title>Odoo 19 XML-RPC product import: ptav resolution, step by step</title>
      <link>https://ai-implmnt.com/blog/odoo19-xmlrpc-product-import/</link>
      <pubDate>Thu, 10 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/odoo19-xmlrpc-product-import/</guid>
      <description>Upload a produce catalogue to Odoo 19 over XML-RPC: template creation, the dynamic-variant setting, and resolving ptav ids to build each SKU.</description>
    </item>
    <item>
      <title>Odoo 19 CE or SaaS: what a distribution SME should run</title>
      <link>https://ai-implmnt.com/blog/odoo19-ce-vs-saas-distribution/</link>
      <pubDate>Wed, 09 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/odoo19-ce-vs-saas-distribution/</guid>
      <description>Odoo 19 Community Edition vs SaaS for a fresh-produce distributor: module parity, record-rule limits, dynamic variants, and the real cost.</description>
    </item>
    <item>
      <title>About Leo Larkin</title>
      <link>https://ai-implmnt.com/blog/about/</link>
      <pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/about/</guid>
      <description>Leo Larkin is an AI and Odoo technical consultant working across Malaysia and Ireland. Odoo 19 implementations, ERP data migration, and AI agent automation for distribution businesses.</description>
    </item>
    <item>
      <title>Dynamic product variants in Odoo 19: importing a produce catalogue without the cartesian explosion</title>
      <link>https://ai-implmnt.com/blog/dynamic-product-variants-odoo19/</link>
      <pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/dynamic-product-variants-odoo19/</guid>
      <description>How to import thousands of produce SKUs into Odoo 19 with create_variant=&amp;#39;dynamic&amp;#39;, attribute-value resolution, and batch creation of product.product records.</description>
    </item>
    <item>
      <title>How 3-way match works at invoice validation in Odoo 19 CE</title>
      <link>https://ai-implmnt.com/blog/three-way-match-odoo19/</link>
      <pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/three-way-match-odoo19/</guid>
      <description>How Odoo 19 CE checks a vendor bill against the PO and receipts at validation, and why a server action is the clean way to enforce it.</description>
    </item>
    <item>
      <title>How I made this blog readable by AI assistants (and why that&#39;s just good SEO now)</title>
      <link>https://ai-implmnt.com/blog/ai-geo-get-cited-by-chatbots/</link>
      <pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/ai-geo-get-cited-by-chatbots/</guid>
      <description>The exact setup this blog uses to be quoted by ChatGPT, Claude, and Perplexity: llms.txt, JSON-LD, per-question answers, and sitemaps. Copy it.</description>
    </item>
    <item>
      <title>Inter-company stock transfers in Odoo 19: the route collision that eats your sales orders</title>
      <link>https://ai-implmnt.com/blog/intercompany-transfers-odoo19/</link>
      <pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/intercompany-transfers-odoo19/</guid>
      <description>Odoo 19 inter-company transfer routes need ship and receive steps only. Add pick/pack rules and they hijack sale-order procurement. Here&amp;#39;s the diagnosis and the fix.</description>
    </item>
    <item>
      <title>Odoo FAQ</title>
      <link>https://ai-implmnt.com/blog/odoo-faq/</link>
      <pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/odoo-faq/</guid>
      <description>Straight answers on Odoo 19: dynamic variants, warehouse access rights, 3-way match invoicing, XML-RPC imports, and Community vs Enterprise.</description>
    </item>
    <item>
      <title>One warehouse per user in Odoo 19 Community: the ir.access method</title>
      <link>https://ai-implmnt.com/blog/warehouse-scoped-access-odoo19/</link>
      <pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/warehouse-scoped-access-odoo19/</guid>
      <description>Odoo 19&amp;#39;s ir.access records let you scope a user to one warehouse with domains. Group membership is additive and leaks; here&amp;#39;s the working pattern.</description>
    </item>
    <item>
      <title>Running AI agents against Odoo 19 with XML-RPC and JSON-RPC</title>
      <link>https://ai-implmnt.com/blog/ai-agent-odoo-jsonrpc/</link>
      <pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/ai-agent-odoo-jsonrpc/</guid>
      <description>A working pattern for autonomous AI agents on live Odoo 19 databases: API keys, safe write discipline, and what agents should never touch.</description>
    </item>
    <item>
      <title>Services</title>
      <link>https://ai-implmnt.com/blog/services/</link>
      <pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://ai-implmnt.com/blog/services/</guid>
      <description>Odoo 19 implementation, ERP data migration, and AI agent automation for distribution SMEs in Malaysia and Ireland. Hands-on sessions from RM250.</description>
    </item>
  </channel>
</rss>
