{"id":"b549e4a8-902b-434a-9907-05631e01f54d","shortId":"QchSWQ","kind":"skill","title":"odoo-purchase-workflow","tagline":"Expert guide for Odoo Purchase: RFQ → PO → Receipt → Vendor Bill workflow, purchase agreements, vendor price lists, and 3-way matching.","description":"# Odoo Purchase Workflow\n\n## Overview\n\nThis skill guides you through the complete Odoo Purchase workflow — from sending a Request for Quotation (RFQ) to receiving goods and matching the vendor bill. It also covers purchase agreements, vendor price lists on products, automated reordering, and 3-way matching controls.\n\n## When to Use This Skill\n\n- Setting up the purchase flow for a new Odoo instance.\n- Implementing purchase order approval workflows (2-level approval).\n- Configuring vendor price lists with quantity-based discounts.\n- Troubleshooting billing/receipt mismatches in 3-way matching.\n\n## How It Works\n\n1. **Activate**: Mention `@odoo-purchase-workflow` and describe your purchasing scenario.\n2. **Configure**: Receive exact Odoo menu paths and field-by-field configuration.\n3. **Troubleshoot**: Describe a billing or receiving issue and get a root cause diagnosis.\n\n## Examples\n\n### Example 1: Standard RFQ → PO → Receipt → Bill Flow\n\n```text\nStep 1: Create RFQ\n  Menu: Purchase → Orders → Requests for Quotation → New\n  Vendor: Acme Supplies\n  Add product lines with quantity and unit price\n\nStep 2: Send RFQ to Vendor\n  Click \"Send by Email\" → Vendor receives PDF with RFQ details\n\nStep 3: Confirm as Purchase Order\n  Click \"Confirm Order\" → Status changes to \"Purchase Order\"\n\nStep 4: Receive Goods\n  Click \"Receive Products\" → Validate received quantities\n  (partial receipts are supported; PO stays open for remaining qty)\n\nStep 5: Match Vendor Bill (3-Way Match)\n  Click \"Create Bill\" → Bill pre-filled from PO quantities\n  Verify: PO qty = Received qty = Billed qty\n  Post Bill → Register Payment\n```\n\n### Example 2: Enable 2-Level Purchase Approval\n\n```text\nMenu: Purchase → Configuration → Settings\n\nPurchase Order Approval:\n  ☑ Purchase Order Approval\n  Minimum Order Amount: $5,000\n\nResult:\n  Orders ≤ $5,000  → Confirm directly to PO\n  Orders > $5,000  → Status: \"Waiting for Approval\"\n                     A purchase manager must click \"Approve\"\n```\n\n### Example 3: Vendor Price List (Quantity Breaks on a Product)\n\n```text\nVendor price lists are configured per product, not as a global menu.\n\nMenu: Inventory → Products → [Select Product] → Purchase Tab\n  → Vendor Pricelist section → Add a line\n\nVendor: Acme Supplies\nCurrency: USD\nPrice:    $12.00\nMin. Qty: 1\n\nAdd another line for quantity discount:\nMin. Qty: 100 → Price: $10.50   (12.5% discount)\nMin. Qty: 500 → Price:  $9.00   (25% discount)\n\nResult: Odoo automatically selects the right price on a PO\nbased on the ordered quantity for this vendor.\n```\n\n## Best Practices\n\n- ✅ **Do:** Enable **Purchase Order Approval** for orders above your company's approval threshold.\n- ✅ **Do:** Use **Purchase Agreements (Blanket Orders)** for recurring vendors with pre-negotiated annual contracts.\n- ✅ **Do:** Set a **vendor lead time** on products (Purchase tab) so Odoo can schedule arrival dates accurately.\n- ✅ **Do:** Set the **Bill Control** policy to \"Based on received quantities\" (not ordered qty) for accurate 3-way matching.\n- ❌ **Don't:** Confirm a PO before prices are agreed — use Draft/RFQ status to negotiate first.\n- ❌ **Don't:** Post a vendor bill without linking it to a receipt — bypassing 3-way matching creates accounting discrepancies.\n- ❌ **Don't:** Delete a PO that has received quantities — archive it instead to preserve the stock and accounting trail.\n\n## Limitations\n\n- Does not cover **subcontracting purchase flows** — those require the Manufacturing module and subcontracting BoM type.\n- **EDI-based order exchange** (automated PO import/export) requires custom integration — use `@odoo-edi-connector` for that.\n- Vendor pricelist currency conversion depends on the active **currency rate** in Odoo; rates must be kept current for accuracy.\n- The **2-level approval** is a binary threshold; more complex approval matrices (department-based, multi-tier) require custom development or the Approvals app.","tags":["odoo","purchase","workflow","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-odoo-purchase-workflow","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/odoo-purchase-workflow","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34666 github stars · SKILL.md body (3,910 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T06:51:41.600Z","embedding":null,"createdAt":"2026-04-18T21:41:51.614Z","updatedAt":"2026-04-23T06:51:41.600Z","lastSeenAt":"2026-04-23T06:51:41.600Z","tsv":"'000':285,289,296 '1':113,154,163,352 '10.50':363 '100':361 '12.00':349 '12.5':364 '2':91,125,185,264,266,564 '25':371 '3':22,67,107,138,201,239,308,454,485 '4':215 '5':235,284,288,295 '500':368 '9.00':370 'account':489,508 'accur':437,453 'accuraci':562 'acm':174,344 'activ':114,551 'add':176,340,353 'agre':465 'agreement':17,58,409 'also':55 'amount':283 'annual':419 'anoth':354 'app':587 'approv':89,93,269,277,280,300,306,397,404,566,573,586 'archiv':500 'arriv':435 'autom':64,531 'automat':375 'base':101,383,445,528,577 'best':391 'bill':14,53,142,159,238,244,245,257,260,441,477 'billing/receipt':104 'binari':569 'blanket':410 'bom':524 'break':313 'bypass':484 'caus':150 'chang':210 'click':190,206,218,242,305 'compani':402 'complet':35 'complex':572 'configur':94,126,137,273,322 'confirm':202,207,290,459 'connector':541 'contract':420 'control':70,442 'convers':547 'cover':56,513 'creat':164,243,488 'currenc':346,546,552 'current':560 'custom':535,582 'date':436 'delet':493 'depart':576 'department-bas':575 'depend':548 'describ':121,140 'detail':199 'develop':583 'diagnosi':151 'direct':291 'discount':102,358,365,372 'discrep':490 'draft/rfq':467 'edi':527,540 'edi-bas':526 'email':193 'enabl':265,394 'exact':128 'exampl':152,153,263,307 'exchang':530 'expert':5 'field':134,136 'field-by-field':133 'fill':248 'first':471 'flow':80,160,516 'get':147 'global':328 'good':48,217 'guid':6,31 'implement':86 'import/export':533 'instanc':85 'instead':502 'integr':536 'inventori':331 'issu':145 'kept':559 'lead':425 'level':92,267,565 'limit':510 'line':178,342,355 'link':479 'list':20,61,97,311,320 'manag':303 'manufactur':520 'match':24,50,69,109,236,241,456,487 'matric':574 'mention':115 'menu':130,166,271,329,330 'min':350,359,366 'minimum':281 'mismatch':105 'modul':521 'multi':579 'multi-ti':578 'must':304,557 'negoti':418,470 'new':83,172 'odoo':2,8,25,36,84,117,129,374,432,539,555 'odoo-edi-connector':538 'odoo-purchase-workflow':1,116 'open':230 'order':88,168,205,208,213,276,279,282,287,294,386,396,399,411,450,529 'overview':28 'partial':224 'path':131 'payment':262 'pdf':196 'per':323 'po':11,157,228,250,253,293,382,461,495,532 'polici':443 'post':259,474 'practic':392 'pre':247,417 'pre-fil':246 'pre-negoti':416 'preserv':504 'price':19,60,96,183,310,319,348,362,369,379,463 'pricelist':338,545 'product':63,177,220,316,324,332,334,428 'purchas':3,9,16,26,37,57,79,87,118,123,167,204,212,268,272,275,278,302,335,395,408,429,515 'qti':233,254,256,258,351,360,367,451 'quantiti':100,180,223,251,312,357,387,448,499 'quantity-bas':99 'quotat':44,171 'rate':553,556 'receipt':12,158,225,483 'receiv':47,127,144,195,216,219,222,255,447,498 'recur':413 'regist':261 'remain':232 'reorder':65 'request':42,169 'requir':518,534,581 'result':286,373 'rfq':10,45,156,165,187,198 'right':378 'root':149 'scenario':124 'schedul':434 'section':339 'select':333,376 'send':40,186,191 'set':76,274,422,439 'skill':30,75 'skill-odoo-purchase-workflow' 'source-sickn33' 'standard':155 'status':209,297,468 'stay':229 'step':162,184,200,214,234 'stock':506 'subcontract':514,523 'suppli':175,345 'support':227 'tab':336,430 'text':161,270,317 'threshold':405,570 'tier':580 'time':426 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'trail':509 'troubleshoot':103,139 'type':525 'unit':182 'usd':347 'use':73,407,466,537 'valid':221 'vendor':13,18,52,59,95,173,189,194,237,309,318,337,343,390,414,424,476,544 'verifi':252 'wait':298 'way':23,68,108,240,455,486 'without':478 'work':112 'workflow':4,15,27,38,90,119","prices":[{"id":"67df3ece-490c-41a3-9fd9-0dd757b865f8","listingId":"b549e4a8-902b-434a-9907-05631e01f54d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:41:51.614Z"}],"sources":[{"listingId":"b549e4a8-902b-434a-9907-05631e01f54d","source":"github","sourceId":"sickn33/antigravity-awesome-skills/odoo-purchase-workflow","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/odoo-purchase-workflow","isPrimary":false,"firstSeenAt":"2026-04-18T21:41:51.614Z","lastSeenAt":"2026-04-23T06:51:41.600Z"}],"details":{"listingId":"b549e4a8-902b-434a-9907-05631e01f54d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"odoo-purchase-workflow","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34666,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-23T06:41:03Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"637efe9c540e013f2448ed406f8337ce52b61c36","skill_md_path":"skills/odoo-purchase-workflow/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/odoo-purchase-workflow"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"odoo-purchase-workflow","description":"Expert guide for Odoo Purchase: RFQ → PO → Receipt → Vendor Bill workflow, purchase agreements, vendor price lists, and 3-way matching."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/odoo-purchase-workflow"},"updatedAt":"2026-04-23T06:51:41.600Z"}}