Saltar al contenido principal

Mapeo de productos en la integración de datos ERP: Guía 2026

Mapeo de productos para integración ERP: normalización de SKU, mapeo de atributos, sincronización de catálogos multicanal. Manual práctico con ejemplos reales.

E
ECOSIRE Research and Development Team
|4 de mayo de 202615 min de lectura3.0k Palabras|

Este artículo actualmente está disponible solo en inglés. La traducción estará disponible próximamente.

Product mapping is the unglamorous middle step in every ERP integration that determines whether your stock is accurate, your invoices match what customers ordered, and your reporting tells the truth.

Product mapping is the unglamorous middle step in every ERP integration that determines whether your stock is accurate, your invoices match what customers ordered, and your reporting tells the truth. It's the process of reconciling product identifiers, attributes, units of measure, prices, and tax categories between two or more systems — typically your ERP and a sales channel (eCommerce, marketplace, POS, EDI partner, or a legacy system being migrated). Most failed integrations don't fail because of API issues — they fail because product mapping was treated as "we'll figure it out later." This guide is the playbook we use at ECOSIRE for serious mapping projects: how to design the mapping schema, the seven attribute categories that always matter, common pitfalls, and the tools that make it tractable.

Key Takeaways

  • Product mapping is not just SKU matching — you must reconcile UoM, attributes, variants, prices, taxes, and category trees
  • Build a canonical product master in one system (usually the ERP) and treat all others as projections, not peers
  • The seven attribute categories that always require explicit mapping: identifiers, descriptive, commercial, logistics, fiscal, regulatory, and structural
  • Variant/configurable products are where most mapping projects go wrong — Shopify's variant model differs from Odoo's, which differs from Amazon's, which differs from EDI
  • Crosswalk tables (mapping ID-A to ID-B with metadata) are the standard pattern; store them in the ERP, not the integration platform
  • For ongoing sync, you need bidirectional conflict resolution rules — what wins when both sides change at once
  • Realistic mapping effort: 2–6 weeks of dedicated work for a mid-market catalog (1K–10K SKUs); 8–16 weeks for 50K+ SKU catalogs
  • Tools that help: iPaaS platforms (Make, Workato, Celigo), middleware (MuleSoft, Boomi), or custom (Python/Node + Postgres staging)

What product mapping actually means

When you integrate two systems that both know about products, you have to answer a series of unglamorous but critical questions:

  • Is "Product A" in System 1 the same product as "Product A-001" in System 2?
  • If both systems have a product called "Blue T-shirt Medium", but they have different internal IDs, prices, and stock units — which one is right?
  • When System 1 stores weight as kg and System 2 stores it as lbs, who converts?
  • When you add a new product variant in System 1, how does System 2 know about it?
  • When System 1 deletes a product but System 2 still has open orders for it, what happens?

Product mapping is the discipline of answering all of these explicitly, durably, and in a way that survives staff turnover. The opposite — ad-hoc mapping that lives in someone's head or a spreadsheet — is how you end up with phantom inventory, double invoices, and reconciliation projects that consume entire quarters.


The seven attribute categories every mapping must cover

Most failed mappings missed at least one of these. Run your mapping spec through this checklist explicitly.

1. Identifiers

What unique keys does each system use, and how do they relate?

IdentifierTypical scopeExample
Internal product IDOne system, opaqueOdoo product_template_id = 4521
SKU / Default CodeCross-system if disciplinedBLUE-TSHIRT-M
Manufacturer Part Number (MPN)Cross-vendorMFG-12345-A
Barcode (UPC/EAN/ISBN)Global0712345678901
ASIN / FNSKUAmazon-specificB0CZX1Y2W3
Shopify variant IDShopify-specificgid://shopify/ProductVariant/12345
EDI part number (X12 IT1)EDI partner-specific2376-A
GTINGlobal trade00012345678905

Rule of thumb: Pick the highest-cardinality global identifier (UPC/EAN, then SKU) as the join key. Internal IDs change; barcodes don't.

2. Descriptive attributes

AttributePitfall
Product name / titleMarketing channels truncate (Amazon: 200 chars, eBay: 80)
Description / long copyHTML vs. plain text vs. Markdown — pick one canonical format
Brand / manufacturerFree text vs. controlled list — controlled wins
Image URLs / countChannels have minimum and maximum count; aspect ratios differ
Localized descriptionsMultilingual catalogs need explicit per-locale fields

3. Commercial attributes

AttributePitfall
PriceMultiple price lists (retail, wholesale, contract); currency
Cost / standard costUsed for COGS — must be in ERP, may not exist in channel
MSRP / list priceChannels use this for "compare-at" pricing
Sale price + sale windowPromotion start/end dates
Quantity discounts / tier pricingSome channels support, some don't
CurrencyISO 4217 code (USD vs. $); FX strategy for multi-currency

4. Logistics attributes

AttributePitfall
Unit of measure (UoM)Each, kg, lb, oz, m, ft — and sales UoM may differ from purchase UoM
Weight + weight UoMConversion errors are very common
Dimensions (L×W×H + UoM)Required for shipping rate calculation
Pack size / case quantity"Sold by" vs. "ships as"
Country of originRequired for customs
Hazmat class / dangerous goodsRequired for shipping carriers
Stockable vs. service vs. consumableDetermines whether stock moves are created

5. Fiscal attributes

AttributePitfall
Tax categoryUS sales tax categories vs. EU VAT codes vs. India HSN codes
Tax-inclusive vs. exclusive pricesEU/UK typically inclusive, US typically exclusive
Income / revenue accountGL account for sales of this product
COGS accountGL account for cost of this product
Stock valuation accountInventory asset account
Default tax (sale + purchase)Per-jurisdiction overrides

6. Regulatory attributes

AttributeWhen it matters
FDA / health regulationsFood, drugs, supplements, cosmetics
Age restrictionTobacco, alcohol, weapons
Hazmat / DG classLithium batteries, chemicals, paints
Country-specific complianceIndia HSN, Brazil NCM, EU EORI
Restricted-export flagITAR, EAR controlled items
Lot / serial / batch trackingPharma, food, electronics, regulated goods

7. Structural attributes

AttributePitfall
Category / taxonomyEach channel has its own category tree (Amazon's Browse Tree, Google Product Taxonomy, Shopify Collections, eBay Item Specifics)
Variant modelConfigurable products, attribute combinations
Bundle / kit composition"Sold as 1, ships as 6 components"
Cross-sell / upsell relationsChannel-specific recommendations
Subscription / recurringSubscription frequency, billing cadence

The variant problem (where most projects break)

Variants are the single biggest source of mapping defects. Each platform models them differently:

  • Odoo: A "product template" has multiple "product variants" generated from attribute combinations (Color × Size). Each variant is a real DB row with its own SKU, stock, price.
  • Shopify: A "product" has up to 100 variants across max 3 options (Color, Size, Material). Each variant has its own SKU, barcode, price, inventory.
  • WooCommerce: A "variable product" has up to ~50 variations practically. Stored as separate posts with parent reference.
  • Amazon: A "parent ASIN" has child ASINs. Each child is a fully independent listing with its own pricing, ranking, reviews.
  • EDI: Typically flat — each variant is a separate item with no parent concept. UPC is the join key.
  • NetSuite: Matrix items with member items. Different from inventory items.

Mapping strategy: Always map at the variant level (the SKU-equivalent), not the parent. Maintain parent-child relationships separately. When a variant doesn't exist in the destination, decide explicitly: auto-create, queue for review, or reject.


The canonical master pattern

The most reliable architectural pattern: one system is the master; all others are projections. Pick this carefully — usually it's the ERP because it owns financial and inventory truth. Then:

  1. All product creation happens in the ERP. New SKUs, variants, attributes, prices originate there.
  2. Channels receive a projection. A subset of attributes, transformed for the channel's schema. Shopify gets HTML descriptions; EDI gets flat fields; Amazon gets category-mapped attributes.
  3. Changes flow outward, not inward. The channel doesn't tell the ERP what the price is. The ERP tells the channel.
  4. Exceptions are explicit. Some attributes (Amazon-specific keywords, Shopify-specific SEO fields) live only in the channel and are mastered there. Document these.

This pattern eliminates 80% of conflict-resolution complexity. The remaining 20% (e.g., inventory updates flowing back from a marketplace fulfillment center to the ERP) needs explicit conflict rules.


The crosswalk table

A crosswalk is the cross-reference table that maps identifiers between systems. Minimum schema:

product_crosswalk
-----------------
canonical_product_id   UUID    -- master ID in ERP
external_system        TEXT    -- 'shopify', 'amazon-us', 'edi-walmart', etc.
external_id            TEXT    -- the channel-specific ID
external_sku           TEXT    -- the channel-specific SKU
mapped_at              TIMESTAMP
mapped_by              TEXT
mapping_confidence     INT     -- 0-100 (auto-matched? manual? verified?)
last_synced            TIMESTAMP
sync_status            TEXT    -- 'active', 'paused', 'error', 'deprecated'
notes                  TEXT

Critical: Store this in the ERP database, not in the iPaaS platform. iPaaS subscriptions get cancelled, vendors get acquired, and you can't reconstruct your mapping from a Make.com export.


Practical mapping workflow

For a typical mid-market integration (Odoo ↔ Shopify), here's the playbook ECOSIRE uses:

Phase 1: Inventory the catalog (week 1)

  • Export all products from both systems with all attributes
  • Quantify: how many products in each? how many variants? how many channels?
  • Identify the join keys you can rely on (UPC > SKU > MPN > name fuzzy match)
  • Profile data quality: missing UPCs, duplicate SKUs, malformed prices, etc.

Phase 2: Build the canonical schema (week 1–2)

  • For each of the seven attribute categories, decide: which system masters this? which is the destination format?
  • Document the transformation: "Odoo list_price (USD, exclusive) → Shopify price (USD, exclusive)" or "Odoo weight_kg → Shopify grams = weight_kg × 1000"
  • Reach explicit decisions for variant model, category mapping, image strategy

Phase 3: Initial bulk match (week 2–3)

  • Auto-match on UPC where both sides have it
  • Auto-match on SKU where UPC missing but SKU is reliable
  • Manual review for anything below the auto-match confidence threshold
  • Resolve duplicates (same UPC, two SKUs in one system)
  • Output: populated crosswalk table with confidence scores

Phase 4: Initial bulk sync (week 3–4)

  • Push canonical product data from master to all channels
  • Validate: do counts match? do random-sample products look right in each channel?
  • Fix gaps: missing required fields, category-mapping holes, image-format issues

Phase 5: Incremental sync setup (week 4–5)

  • Wire up triggers (Odoo creates a product → outbound to Shopify within X minutes)
  • Build error queue and retry logic
  • Set up reconciliation report (daily job comparing master vs. channel for drift)

Phase 6: Operational handoff (week 5–6)

  • Document for ops team: how to add a new product, how to handle sync errors, how to retire a SKU
  • Train product/merchandising team on the master-first workflow
  • Establish weekly drift review

Tools that actually help

Tool categoryBest forReal cost
iPaaS (no-code) — Make.com, Zapier, Workato, Celigo<5K SKUs, simple transforms$50–$500/month
iPaaS (low-code) — Boomi, MuleSoft, SnapLogicMid-market, moderate complexity$1K–$10K/month
Marketplace connectors — ChannelEngine, ChannelAdvisor, SellercloudMulti-marketplace specialists$500–$5K/month
Custom code — Python/Node + Postgres stagingComplex transforms, full controlOne-time $20K–$80K + maintenance
ERP-native connectors — Odoo Shopify Connector, Odoo Amazon ConnectorPure Odoo + one channelFree–$500 one-time
PIM systems — Akeneo, Pimcore, SalsifyCatalog-first companies$10K–$100K/year

For most ECOSIRE mid-market clients, the right answer is the ERP-native connector for the primary channel, plus Make.com for secondary channels, plus custom Python for the unusual pieces (EDI, custom B2B portals).


Common pitfalls (and how to avoid them)

1. Mapping in the spreadsheet, syncing from production. Someone builds a beautiful mapping in Excel, then never gets it into a system of record. When the spreadsheet's owner leaves, the mapping is lost.

Fix: Build the crosswalk table in the ERP from week 1. Spreadsheets are for ad-hoc analysis only.

2. Treating SKUs as globally unique. They aren't. The same SKU can mean different things in two systems if you have multiple suppliers or M&A history.

Fix: Use UPC/EAN as the cross-system join key. Use SKU only within a single system's namespace.

3. Ignoring UoM conversion. Buying in cases of 12, selling in eaches, shipping in pallets of 60 — and the ERP only has one UoM field per product.

Fix: Use Odoo's UoM categories properly. Set sales UoM and purchase UoM explicitly on every product.

4. Letting categories drift. Marketplace categories change quarterly. If your mapping is hardcoded, your products start getting suppressed.

Fix: Pull the channel's category tree via API quarterly. Re-map drifted products. Most marketplaces emit deprecation notices via API — listen for them.

5. Bidirectional sync without conflict rules. Both systems can change the price → race conditions, last-writer-wins → wrong prices.

Fix: For each attribute, declare master direction explicitly. Don't let attributes float between systems.

6. No reconciliation. Sync runs for 6 months, then someone notices that 200 products are out of stock on Shopify but in stock in Odoo. There's no audit trail of what diverged or when.

Fix: Daily reconciliation job that compares canonical vs. each channel and emits a drift report. Treat drift as a defect.

7. Skipping the "deprecated" state. Old products get deleted in the ERP but the channel still has open orders. Now you can't refund/return because the product doesn't exist.

Fix: Soft-delete only. Mark products inactive/archived. Never hard-delete from a production catalog.


Frequently Asked Questions

Should I use SKU or UPC as my primary mapping key?

UPC if you have it (it's globally unique by design). SKU is your join key within a system but isn't safe across systems unless your team has been disciplined about SKU governance from day one. For new integrations where data quality is unknown, build the mapping on UPC first, fall back to SKU + name fuzzy match for the gaps, and require manual review for the rest.

How long does a typical product mapping project take?

For a mid-market catalog (1K–10K SKUs): 2–6 weeks of dedicated effort. For 50K+ SKUs with multi-marketplace, multi-language scope: 8–16 weeks. The variable isn't catalog size — it's data quality. A clean 5K-SKU catalog can map in two weeks; a messy 1K-SKU catalog can take six.

Can AI / machine learning help with product mapping?

For initial bulk matching: yes, meaningfully. Fuzzy-name matching with embeddings (sentence-transformers, OpenAI embeddings) handles the 60–80% of products where SKU/UPC don't align but the name + brand + category make the match obvious. For attribute mapping (turning Amazon's 47-field schema into Odoo's 12-field schema): less helpful — these are deterministic transformations best written as code. AI helps the matching, not the schema design.

Where should the canonical product master live — ERP or PIM?

ERP if your business is primarily transactional (you sell what you stock, customers buy from a finite catalog). PIM if your business is catalog-led (you manage thousands of SKUs across many channels with rich digital assets, and the ERP is downstream of the PIM). For most mid-market companies, the ERP is the right master and a separate PIM is overkill until you cross 50K SKUs or 5+ sales channels.

What's the difference between product mapping and master data management (MDM)?

Product mapping is one slice of MDM. MDM is the broader discipline of managing canonical reference data (customers, vendors, products, locations, employees) across systems. For SMB and lower mid-market, you can do product mapping without a formal MDM program. Above ~$200M revenue with multiple ERPs in scope, formal MDM tooling (Reltio, Informatica, Stibo) starts paying back.

How does product mapping differ for B2B vs. B2C?

B2C: emphasis on title/description/images, marketplace category, pricing, SEO. Most variant complexity. Most channels. B2B: emphasis on customer-specific pricing, contract pricing, customer-specific SKU aliases (the same Odoo product is WIDGET-A-001 to you but 12345 to a customer's purchasing system), unit of measure conversion (eaches/cases/pallets), tax and regulatory complexity.

A B2B integration is rarely just product mapping — it's product mapping + customer-specific overlay. Plan accordingly.

Should I outsource product mapping?

The decision rubric: outsource the first mapping project to a partner who has done it before, then run subsequent projects in-house with their playbook. Mapping is a learnable skill but the first project has too many "didn't know what we didn't know" hazards. ECOSIRE does product mapping as part of our Odoo integration services and the institutional learning shows up in cleaner mappings, faster turnaround, and fewer drift incidents post-launch.


Bottom line

Product mapping is the technical foundation that determines whether your ERP integration actually delivers business value. Treat it as an architectural discipline (canonical master, explicit transformations, crosswalk tables, conflict rules, reconciliation) rather than a one-time spreadsheet exercise. The seven-category checklist above is the minimum spec; the canonical-master pattern is the minimum architecture.

If you're scoping an ERP integration — whether it's Odoo ↔ Shopify, Odoo ↔ Amazon, EDI onboarding, or a multi-system migration — talk to ECOSIRE about a free integration readiness assessment. We've mapped catalogs from 200 SKUs to 200K SKUs and the patterns above are battle-tested.

E

Escrito por

ECOSIRE Team

Technical Writing

The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.

ECOSIRE

Transforme su negocio con Odoo ERP

Implementación, personalización y soporte experto de Odoo para optimizar sus operaciones.