· MicroPIM Team · Data Import & Export · 23 min read
Importing Products From CSV or XML With Automatic Field Mapping
A technical guide to field mapping logic for CSV and XML product imports: column normalization, data type coercion, multi-value handling, and saving reusable mapping profiles.
Importing Products From CSV or XML With Automatic Field Mapping
AEO answer: Automatic field mapping for CSV or XML imports works by matching incoming column headers to target attribute names using exact matches, fuzzy string matching, and a saved mapping profile. Most PIM tools let you manually correct auto-detected mappings and save the corrected profile so the next import from the same supplier requires no re-mapping. The mapping layer also applies transformation rules — unit conversions, string trimming, value lookups — before writing data to the catalog.
Your supplier sends a spreadsheet with a column called prod_wt_kg. Your catalog expects a field called weight_grams. Between those two column names lies a unit conversion, a rename, and a multiplication by 1000. Multiply that by 50 columns, three suppliers, and a weekly import schedule, and you have the field mapping problem in its full operational form.
Most failed product imports do not fail at the network layer or the file parsing stage. They fail at the semantic layer — where one system’s naming conventions meet another system’s schema, and nobody has mapped the gap. The import completes, the system reports success, and 40% of your product data has landed in the wrong fields. That is the real problem, and it is harder to catch than a hard stop.
This guide covers the field mapping layer in depth: how auto-detection works, where it breaks down, and what transformation rules you need to define before any import can be trusted. These concepts apply whether you are running a one-time migration from a legacy ERP or a scheduled nightly supplier feed.
By the end you will understand the anatomy of a field map, the most common transformation problems, and how to build a reusable mapping profile so you solve each supplier’s quirks exactly once.
Table of Contents
- Why Imports Fail: The Field Mapping Problem in Concrete Terms
- The Anatomy of a Field Map
- Common Field Name Mismatches and How to Normalize Them
- Data Type Coercion
- Handling Multi-Value Fields From Flat Files
- Images in Import Files
- Required Field Validation Before Import
- Saving and Reusing Field Map Configurations
- How MicroPIM’s Field Mapping Interface Works
- Frequently Asked Questions
1. Why Imports Fail: The Field Mapping Problem in Concrete Terms
[E-E-A-T HOOK — Experience]: Add a real customer scenario here: “A [X]-SKU seller migrating from [platform] discovered that [N]% of their product descriptions had silently mapped to the wrong field — only caught three days post-launch when customer complaints surfaced.” Draw from a genuine MicroPIM onboarding story if available. [INTERNAL LINK: → /study-cases]
[E-E-A-T HOOK — Citation needed]: Reference the Shopify, Magento, and WooCommerce official product data field naming specifications where naming convention differences are stated. Example sources: shopify.dev/docs/api/admin-rest/2024-01/resources/product, devdocs.magento.com (product attributes), woocommerce.github.io/woocommerce-rest-api-docs.
[CITE: Shopify product object field naming — shopify.dev/docs/api/admin-rest/2024-01/resources/product] [CITE: WooCommerce REST API product data fields — woocommerce.github.io/woocommerce-rest-api-docs/#products] [CITE: Magento 2 product attributes documentation — devdocs.magento.com/guides/v2.4/rest/tutorials/orders/order-add-items.html]
[E-E-A-T NOTE — Expertise depth]: This section currently lists failure causes but does not name the frequency. Add a sentence like: “Silent mapping failures are harder to catch than parse errors because they produce no error log entry — the import succeeds from the system’s perspective.” This raises expertise signal for readers who know the distinction.
The file parses without error. The system returns a success message. The import is done — except that data has landed in the wrong fields, or been silently dropped, because the incoming column names do not match the target attribute names in your catalog. Shopify calls the product identifier a handle. WooCommerce calls it post_name. A supplier ERP might call it ITEM_REF. These are three names for the same concept, and an import system that does not know they are equivalent will either reject the column or, worse, silently skip it and report the import as successful.
Silent mapping failures are harder to catch than parse errors because they produce no error log entry — the import succeeds from the system’s perspective. The data problem only surfaces when someone notices that product descriptions are displaying in the weight field, or that every product in a 3,000-SKU import has a null price. By that point the damage is done and the remediation work begins.
Shopify, Magento, WooCommerce, and PIM systems each have their own required field naming conventions. There is no universal standard. Suppliers rarely consult your schema when structuring their export files. The result is that every import relationship between two systems requires a field map, and every field map that is not saved and version-controlled must be recreated from scratch on the next import run.
[INTERNAL LINK: → /blog/sku-management-scale — understanding your target schema is the prerequisite to mapping anything to it]
2. The Anatomy of a Field Map: Source Column, Target Attribute, Transformation Rule, Fallback Value
A field map is the configuration that tells your import system how to handle each incoming column. Every complete field map entry has four components. Defining all four for every column in a supplier file is the work that turns an unreliable import into a predictable one.
2a. The Four Components
- Source column: the column header as it appears in the supplier file (e.g.,
prod_title,NAME,item description) - Target attribute: the field in your catalog schema this value maps to (e.g.,
product_name) - Transformation rule: any operation applied to the value during transit (trim whitespace, convert unit, replace value, concatenate)
- Fallback value: what to write when the source field is empty (null, a literal default, or a flag-for-review marker)
When any one of these four components is missing or incorrect, the import produces bad data. A field map with no transformation rule will land kilograms in a grams field. A field map with no fallback value will leave required fields empty when a supplier omits them. A field map with the wrong target attribute will populate the wrong catalog field without raising an error.
2b. Worked Example
| Source Column | Target Attribute | Transformation Rule | Fallback Value |
|---|---|---|---|
prod_title | product_name | Trim whitespace; capitalize first letter | [REVIEW: no title] |
WGT_KG | weight_grams | Multiply by 1000; cast to integer | 0 |
colour | color | Lookup: British → American spelling | Unspecified |
price_eur | price | Strip € symbol; cast to decimal | Reject record |
in_stock | stock_status | Normalize: Y/N/1/0/yes/no → true/false | false |
img_url_1 | primary_image_url | Validate URL format; check returns 200 | Flag for review |
Illustrative data — field names representative of common supplier export formats.
3. Common Field Name Mismatches and How to Normalize Them
[E-E-A-T NOTE — Expertise depth]: The auto-detection section mentions fuzzy matching but does not name the algorithm. Name it: Levenshtein distance / Jaro-Winkler similarity are the most common approaches in PIM tools. If MicroPIM uses a specific method, state it. Technical precision here is an expertise signal.
[QUOTE: Seek a quote from an e-commerce data engineer or catalog operations lead — e.g., “The first time we automated a supplier import without reviewing the column headers, we ended up with 800 products where the EAN was mapped to the description field. The import said it succeeded.” This kind of practitioner voice dramatically raises Experience and Trust signals for technical readers.]
3a. Auto-Detection Logic
Auto-detection reduces the manual work of field mapping by identifying likely matches between incoming column headers and known target attributes. The mechanism is fuzzy string matching — typically Levenshtein distance or Jaro-Winkler similarity — which calculates how different two strings are character by character. Before that calculation runs, a case normalization pass lowercases all incoming column headers, which eliminates a large class of mismatches before any algorithm needs to run. PRODUCT_NAME, product_name, and Product_Name all resolve to the same string after lowercasing, and auto-detection can match them confidently to product_name in the target schema without using any fuzzy logic at all.
The result is that a well-designed auto-detection layer handles the majority of straightforward supplier file variations without manual intervention. product_name, prod_name, name, title, item_title all resolve to the same target attribute. The mapping is suggested, displayed for review, and saved — ready to apply to the next import from the same supplier.
3b. Where Auto-Detection Breaks Down
Auto-detection fails on abbreviated or business-specific column names that have no resemblance to standard attribute names. PN (part number), ITM (item code), and WGT (weight) share no character-level similarity with product_name, sku, or weight_grams. The fuzzy matcher produces a low-confidence match, or no match at all, and the column must be manually mapped.
The table below lists common supplier column aliases grouped by attribute type. This is the reference that auto-detection emulates — and the reference you need when you are manually correcting an auto-detected mapping that has produced an incorrect result.
| Canonical Attribute | Common Supplier Column Aliases |
|---|---|
product_name | name, title, item_title, prod_title, product_title, NAME, DESCRIPTION_SHORT, item_name, ITEM_NAME |
sku | sku_code, item_code, article_no, ARTNO, part_no, PN, ITM, seller_sku, internal_id |
gtin | ean, ean13, upc, barcode, gtin13, GTIN, EAN, barcode_ean, product_barcode |
price | list_price, retail_price, PRICE, price_eur, price_usd, msrp, RRP, sell_price |
weight_grams | weight, wgt, WGT, weight_kg, weight_lbs, net_weight, NTWT |
primary_image_url | image, image_url, img_url, photo_url, image_link, main_image, IMAGE_1 |
description | body, body_html, long_description, product_description, DESC, full_desc |
category | category_name, cat, CAT, product_type, type, department, DEPT |
brand | brand_name, manufacturer, vendor, BRAND, MFR, make |
stock_quantity | qty, quantity, stock, STOCK_QTY, inventory_qty, available_qty, QTY_AVAIL |
Aliases based on common supplier export formats across ERP, WMS, and B2B wholesale systems.
4. Data Type Coercion: Converting Supplier Text to Numbers, Booleans, and Structured Values
Supplier files arrive as text. Your catalog schema expects typed values — decimals, booleans, integers, ISO-formatted dates. The coercion step converts incoming text into the correct type. When coercion is not configured, values arrive as strings and downstream systems either reject them or store them incorrectly.
[E-E-A-T NOTE — Missing failure modes]: The section covers the happy path for coercion. Add one failure mode per coercion type: price coercion fails when the currency symbol is a Unicode variant (€ vs €) that a regex does not catch; boolean normalization fails when the supplier uses locale-specific strings (
"Ja"/"Nein"for a German supplier); date parsing fails when the separator is ambiguous (01/02/2024is February 1 or January 2 depending on locale). Naming failure modes is an Expertise signal and a Trust signal.
[CITE: Unicode standard for currency symbols — unicode.org/charts/PDF/U20A0.pdf — relevant when stripping currency symbols from price fields during coercion]
4a. Common Coercion Operations
Price fields arriving as strings with currency symbols ("$12.99", "€9,99") need the symbol stripped and the value cast to decimal. The failure mode: some suppliers use the Unicode representation of a currency symbol rather than the ASCII character, and a regex written for the ASCII € will not match the Unicode variant. Always test price coercion against a sample that includes non-ASCII currency characters.
Boolean fields from supplier files appear in at least five common forms: "yes"/"no", "true"/"false", "1"/"0", "Y"/"N", and locale-specific strings like "Ja"/"Nein" from German-market suppliers. All of these need normalization to a single boolean type before writing to the catalog. A coercion rule that handles English-language boolean strings will silently fail for a German supplier without generating an error.
4b. Unit Conversion
Weight is one of the most consistently mismatched data types in supplier imports. Different suppliers use kg, lbs, and grams interchangeably and sometimes without specifying the unit in the column header. A coercion rule that multiplies by 1000 to convert kg to grams will catastrophically mislabel a product arriving in grams if the supplier changes their unit convention. The safest approach: require explicit unit specification per supplier in the mapping profile, and reject any weight value that falls outside the plausible range for the product category as an accuracy check.
4c. Date Fields
ERP exports produce dates in at least three common formats: MM/DD/YYYY (US), DD/MM/YYYY (European), YYYY-MM-DD (ISO 8601), and Unix timestamps. The 01/02/2024 problem is real: is it January 2 or February 1? The separator is the same in both common date locale formats. The coercion rule must specify the expected input format explicitly — and must be tested against actual sample data from the supplier, not assumed.
[CODE: Example transformation rule JSON]
{
"field_mappings": [
{
"source_column": "price_eur",
"target_attribute": "price",
"transformations": [
{
"type": "strip_characters",
"characters": ["€", "EUR", " ", "€"]
},
{
"type": "replace",
"find": ",",
"replace_with": "."
},
{
"type": "cast",
"to_type": "decimal",
"decimal_places": 2
}
],
"fallback": "reject_record"
},
{
"source_column": "WGT_KG",
"target_attribute": "weight_grams",
"transformations": [
{
"type": "cast",
"to_type": "decimal"
},
{
"type": "multiply",
"factor": 1000
},
{
"type": "cast",
"to_type": "integer"
}
],
"fallback": "flag_for_review"
},
{
"source_column": "in_stock",
"target_attribute": "stock_status",
"transformations": [
{
"type": "boolean_normalize",
"true_values": ["yes", "y", "1", "true", "in stock", "ja"],
"false_values": ["no", "n", "0", "false", "out of stock", "nein"],
"case_insensitive": true
}
],
"fallback": false
}
]
}5. Handling Multi-Value Fields From Flat Files
Flat file formats like CSV and TSV have no native mechanism for multi-value fields. A product that belongs to three categories, or a garment made from three materials, must encode those multiple values somewhere in a single cell — and the encoding convention varies by supplier and by the system that generated the export.
5a. Three Multi-Value Encoding Patterns
Comma-separated values in a single cell is the most common pattern for attribute lists: "cotton, polyester, spandex" in a materials field, or "blue, navy, midnight" for available colors. The field mapping layer splits the string on the delimiter, trims whitespace from each value, and writes the result as an array attribute.
Pipe-separated values are common for category paths: "Home|Kitchen|Cookware" encodes a three-level category hierarchy in a single cell. The mapping layer must know whether to treat this as a delimited list of separate values or as a hierarchical path where Home is the root and Cookware is the leaf node.
Repeated rows with a consistent identifier is the pattern Shopify’s own CSV format uses for product variants. The same handle value appears on multiple rows, each carrying one variant’s differentiating data. The mapping layer must recognize the shared identifier, group the rows, and reconstruct the product-variant relationship before writing to a catalog schema that stores variants as child records.
[INTERNAL LINK: → /blog/shopify-catalog-migration — the Shopify CSV’s multi-row variant structure is one of the most common sources of import errors]
5b. How the Mapping Layer Handles Each
The field mapping configuration must specify the delimiter and the target data type for each multi-value field. A materials field mapped as a comma-separated array will split correctly. The same field mapped as a plain text attribute will write "cotton, polyester, spandex" as a single string value — valid from the system’s perspective, but unsearchable by material type. For category paths, the mapping configuration must indicate whether | is a value delimiter or a hierarchy separator. These decisions must be made explicitly in the mapping profile; auto-detection cannot reliably infer the intended data structure from delimiter characters alone.
6. Images in Import Files: URL References, Relative Paths, and ZIP Archives
Image handling is where import pipelines fail silently or partially. The image data is technically present in the file — a URL, a filename, a path — but the import produces records with missing images and no error in the import log.
[E-E-A-T NOTE — Missing technical depth]: The signed URL expiry failure (section 6a) should include a concrete time range: AWS S3 pre-signed URLs default to expiry in 15 minutes to 7 days; if an import job queues overnight, a URL generated at 5pm may be expired by the time the job runs at 2am. Add this specificity — it shows the author has encountered this failure mode in practice, not just read about it.
[CITE: AWS S3 pre-signed URL expiry documentation — docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html — to support the signed URL expiry failure mode]
6a. URL References (Most Common)
Most supplier files reference images as URLs. The import system fetches the image at the URL and either re-hosts it in your catalog’s asset storage or stores the URL as-is. The failure mode with URL references is the temporary signed link: AWS S3 pre-signed URLs, for example, expire by default between 15 minutes and 7 days after generation. If a supplier generates their export file at 5pm with pre-signed image URLs and your scheduled import job runs at 2am, those URLs may return a 403 or 404 by import time. The system logs a successful import but your products have no images. Always verify whether supplier image URLs are permanent public URLs or time-limited signed links before configuring a scheduled import.
6b. ZIP Archive Imports
Some suppliers deliver images as a ZIP archive alongside the CSV, using relative filenames in the CSV that match the image files in the archive. The import system must unpack the archive and match each filename to the correct product record. Failure modes: filename mismatches from encoding differences (spaces vs underscores, accented characters), files in subdirectories the import system does not traverse, and archive corruption that fails silently if the import does not verify extraction completeness.
6c. Multiple Image Columns
Supplier files often deliver multiple images as separate columns: image_1, image_2, image_3. These need to be merged into an ordered image array in the catalog, with image_1 assigned as the primary image. They are not three separate attributes — they are a sequence, and the sequence order matters for the gallery display. Additionally, alt text for images is rarely included in supplier files. The mapping profile must define a generation strategy (concatenation of product name + color + position, or a default placeholder) rather than leaving alt text empty, which affects both accessibility and SEO.
7. Required Field Validation Before Import: Fail Fast vs Import Partial Records
Before any record is written to the catalog, the import system must verify that required fields are present. The decision about what to do when they are missing is a real operations tradeoff with no universally correct answer.
[E-E-A-T HOOK — Risk callout]: Before choosing import-with-flags for a large supplier batch, confirm your catalog’s draft/published state logic is configured correctly — partially imported records should default to draft, never to live/published, to prevent incomplete product pages reaching customers.
[E-E-A-T HOOK — Limitation acknowledgment]: Acknowledge that neither approach is universally correct — the right choice depends on batch size, criticality of the missing field, and whether a partial record is harmful or merely incomplete.
7a. Fail Fast (Strict Mode)
Reject the entire batch if any record is missing a required field. The entire import stops, an error report is generated naming the records and fields that triggered the rejection, and no data is written to the catalog. This is the safe, predictable approach: you always know your catalog state because nothing was written. The cost is operational — for a large supplier feed where 5% of records routinely arrive with a missing field, blocking the entire batch means manually resolving 150 records before a 3,000-SKU import can proceed.
7b. Import With Flags
Write records with missing required fields into the catalog as incomplete drafts, flag them in a review queue, and allow the import to continue. This approach keeps the pipeline moving and surfaces the incomplete records for human resolution without blocking the 95% of records that are complete. The risk: if the catalog’s draft/published state logic is not configured correctly, flagged incomplete records may accidentally go live.
7c. When Each Approach Fits
Fail fast is appropriate for small, clean batches where you have high confidence in the source data quality and a missing required field is evidence of a genuine problem. Import-with-flags is appropriate for large supplier feeds where a small proportion of missing required fields is expected and blocking the whole batch is operationally worse than flagging the exceptions.
The per-field policy matters more than the per-import policy. SKU and GTIN should trigger a hard reject if missing — without them, deduplication cannot work and the record cannot be matched on future imports. Description and secondary images should trigger a soft flag — the product is incomplete but can be published to draft status and enriched later without catalog damage.
[INTERNAL LINK: → /blog/product-content-quality-scoring — how completeness scoring connects to import validation thresholds]
8. Saving and Reusing Field Map Configurations Across Recurring Imports
The first import from a supplier is the expensive one. You map 40 columns, define transformation rules, set fallback values, and validate the output. The value of that work compounds only if the configuration is saved and applied automatically to every subsequent import from the same supplier.
[E-E-A-T NOTE — Trust: acknowledge limitation]: No PIM system catches every supplier format change automatically. A supplier who reformats their entire export without warning can produce a run where the saved profile matches 0 columns correctly. Periodic manual review of mapping profiles (quarterly or at supplier contract renewal) is still necessary.
[CITE: GS1 standards for supplier data exchange — gs1.org/standards/edi — relevant to why supplier file formats vary: there is no enforced supplier data standard for most product categories outside EDI]
Step 1: Save the Mapping Profile
A saved mapping profile stores the complete field map configuration: source column names, target attribute names, transformation rules, fallback values, and validation settings. The profile is keyed to a supplier identifier — a supplier code, a feed name, or an FTP path. On the next import from the same supplier, the system loads the saved profile automatically and applies the full configuration without re-configuration.
The profile should also store the column headers from the last successful import alongside the mappings. This creates a header baseline that the system can compare against incoming headers to detect supplier format changes before the import runs.
Step 2: Handle Supplier File Changes
Supplier file changes are the most common reason a working automated import suddenly fails or silently produces bad data. A well-designed system diffs the incoming file’s column headers against the saved profile’s baseline headers and surfaces any discrepancy before the import runs: “3 new columns detected; 1 column in the saved profile not found in this file.” The user reviews the diff, updates the mapping profile, and re-runs. The import never proceeds silently with unmapped columns when a diff shows structure has changed.
Step 3: Version-Control Profiles
Mapping profiles should be versioned. When a supplier changes their file structure and you update the mapping profile, the previous version should be retained. If data quality issues appear in the catalog three weeks later and are traced to an import run, the historical profile shows exactly what mapping was applied during that run — which is the starting point for diagnosing whether the quality issue came from the supplier file or from an incorrect mapping configuration.
[INTERNAL LINK: → /blog/supplier-import-automation — saved profiles are the bridge between one-time mapping and automated recurring imports]
9. How MicroPIM’s Field Mapping Interface Works
[E-E-A-T HOOK — Experience]: Insert a real product screenshot or annotated screengrab of MicroPIM’s actual mapping interface here. A genuine dashboard image provides stronger trust than a wireframe placeholder, and it doubles as visual evidence of first-hand experience.
[E-E-A-T HOOK — Transparency]: Acknowledge any current limitations of MicroPIM’s auto-detection (e.g., does it handle XPath for deeply nested XML? does it support Excel .xlsx natively?). Honest limitation disclosure increases trust for technical readers.
MicroPIM’s import workflow applies the four-component field map model described in this article through a visual interface that does not require code. The sequence: upload the supplier file (CSV, XML, or both), wait for auto-detection to run across all incoming column headers, review the detected mappings, correct the cases where auto-detection produced an incorrect or low-confidence match, define transformation rules per field, set fallback values, configure validation behavior (fail fast vs import-with-flags per field), and run the import.
The worked example that illustrates the interface: a 15-column supplier CSV where 4 columns auto-detect correctly (exact matches), 6 require manual correction (abbreviations and aliases outside the fuzzy matcher’s confidence range), and 2 have no equivalent in the target schema. MicroPIM surfaces the 2 unmapped columns explicitly and presents three options: ignore them, store their values as custom metadata, or reject any record that carries a value in those columns.
[DIAGRAM: Screenshot placeholder or wireframe of MicroPIM’s mapping interface showing auto-detected columns, manual override dropdowns, and transformation rule configuration]
After the first import, MicroPIM saves the corrected mapping profile keyed to the supplier source. Subsequent imports from the same supplier load the profile automatically. If the incoming file’s headers differ from the saved baseline, MicroPIM surfaces the diff before the import runs — not after — giving the user the option to update the profile or investigate the supplier file before committing data to the catalog.
[CTA — after intro (soft): “See MicroPIM’s automatic field detection — upload a supplier CSV and watch it map your columns in seconds.” [INTERNAL LINK: → /how-it-works]]
[CTA — after section 7 (medium): “MicroPIM’s completeness gating prevents incomplete records from entering your catalog. Try it free.”]
[CTA — after FAQ (hard): “Import your first supplier file and let MicroPIM map the fields automatically. Fix once, reuse forever. Start your free trial.”]
Frequently Asked Questions
Schema note: Mark this section with FAQPage JSON-LD. Each H3 question + answer pair is one FAQPage mainEntity item.
What is automatic field mapping in a product import?
Automatic field mapping detects the column headers in an incoming CSV or XML file and matches them to the corresponding attribute names in your product catalog using exact and fuzzy string matching. When a match is not found, the system surfaces the unmapped column for manual assignment. The mapping configuration is saved so subsequent imports from the same supplier apply the same mapping without re-configuration.
Why do imports succeed but land in the wrong fields?
This happens when the source file’s column names are different enough from the target attribute names that auto-detection produces an incorrect match — for example, mapping WGT_KG to a weight attribute but missing the unit conversion, so the value lands in the right field with the wrong unit. Silent mapping errors are the most damaging import failures because they are not flagged as errors by the system. The import log shows a successful run; the data problem only surfaces when someone reviews the catalog output.
What is a fallback value in a field map?
A fallback value is the value written to a target attribute when the source field is empty or missing. For example, if a supplier file has no status column, the fallback value can be set to draft so all imported products default to draft status rather than going live immediately. Fallback values can be literal strings, null, or a flag-for-review marker depending on how the pipeline is configured.
Can I reuse the same field map for multiple imports from the same supplier?
Yes. A saved mapping profile stores the full mapping configuration — source column names, target attributes, transformation rules, and fallback values — keyed to a supplier identifier. On subsequent imports from the same supplier, the saved profile is applied automatically. Changes to the supplier’s file structure are surfaced as a header mismatch before the import runs, giving you the opportunity to update the profile before data is written to the catalog.
What happens when a supplier adds a new column I have not mapped?
A properly designed import system diffs the incoming column headers against the saved mapping profile and flags any new (unmapped) columns before the import runs. The import can proceed with the unmapped column ignored, stored as custom metadata, or rejected as a blocking error — depending on how the pipeline is configured. The key is that the unmapped column is surfaced explicitly before the import commits, not discovered after by reviewing the catalog.
How is XML field mapping different from CSV?
CSV field mapping matches flat column headers to attributes. XML field mapping must also handle the hierarchy of the document — a product element may contain nested elements for variants, categories, and images. The mapping layer must define not just which element maps to which attribute but how nested structures are flattened or preserved. Most PIM import tools handle both formats with the same mapping interface, but XML typically requires XPath expressions to target nested values that have no CSV equivalent.
[INTERNAL LINK: → /blog/import-pipeline-no-code — how the five-stage pipeline architecture formalizes field mapping as the Transform stage in an automated recurring import]
Estimated word count: 2,200

