Automated Fix & Pricing (`OrderAirlock`): Starter$249/mo($2,490/yrannual, 500 POs/mo) · Distributor/FDE Pro$499/mo($4,990/yrannual, 2,500 POs/mo) — maps buyer-specific part numbers to your Odoodefault_codeand stores raw buyer codes inorder_line/x_source_customer_sku.
Direct Root Cause & Fix: Odoo's base_import wizard only matches order_line/product_id/default_code against your internal Internal Reference (product.product.default_code)—not buyer-specific part numbers, causing the entire sale.order CSV batch to roll back on a single unknown alias.
Hidden Whitespace & Formula-Prefix Traps in Buyer CSVs
- Leading spaces, non-breaking spaces, or stripped leading zeros (
004812->4812in Excel) breakdefault_codeexact matching. - Customer descriptions starting with
-,+, or=trigger spreadsheet formula corruption unless RFC 4180 / OWASP-sanitized.
Deterministic Fix
- Normalize customer codes and part aliases (
trim().toUpperCase()), resolve via customer-scoped alias table (customer_code + customer_part_alias -> default_code), and quarantine only genuinely new SKUs for 1-click mapping prior to generating<po_number>_odoo19_sales_order.csv.