Skip to main content

Overview

The Parts importer lets you bulk-create or revise parts in a single CSV. It supports the same revision behavior as the UI: rows with an explicit revision create or update that exact (part_number, revision), while rows that omit revision either initialize a new part at the org’s default revision scheme or auto-revise an existing part using the latest-revision flow (carrying over the source part’s mBOM and extensible attributes).

Columns

Part matching is case-insensitive. Enum fields (status, purchase_type, tracking_type, sourcing_strategy) only accept the values listed above. An invalid value produces a row-level error listing the allowed options.

Revisions

The Parts importer mirrors the UI’s revision flow:
  • Row with an explicit revision: looks up (part_number, revision). If it exists, the row updates that part; otherwise it creates a new part at that exact revision.
  • Row without a revision, no existing part with that part_number: ION assigns the initial revision from the configured revision_scheme (or the org’s default scheme, typically "A" or "1").
  • Row without a revision, existing part with that part_number: ION computes the next revision from the latest existing revision and creates a revised part. The new part inherits the mBOM and extensible attributes of the source part.
You cannot have two rows that both omit revision for the same part_number. ION cannot disambiguate which one should auto-bump. Specify revisions explicitly to fix the conflict.Likewise, an explicit-revision row that collides with an auto-bumped revision from another row is rejected as a duplicate. This happens when one row sets revision = B and another auto-bumps to B.

Duration format

The lead_time column accepts a duration written in days, hours, and minutes. Use the units d, h, and m, in that order, with optional spaces between terms. Each unit is optional. The value is rounded down to the nearest minute. A plain number with no unit is read as a number of seconds. Valid values include: The Review step flags a value that uses any other unit (such as weeks or seconds), lists the units out of order, or is otherwise unparseable.

Supplier parts

The supplier_parts column attaches one or more SupplierParts to the part. Use semicolons (;) to separate records and pipes (|) to separate fields within a record:
Example: Acme|ACME-WID-001|4.25|1;Globex|GLX-W1 If a SupplierParts row already exists for the (part, supplier, supplier_part_number) combination, the importer updates its cost and conversion_factor in place. Otherwise it inserts a new row.

Quality clauses

The quality_clauses column accepts a semicolon-delimited list of quality clause reference_name values. Each must match an existing Requirement with requirement_type = QUALITY_CLAUSE. The importer skips associations that already exist, so re-imports are idempotent. Example: QC-001;QC-002

Custom attributes

Any column not in the standard list above is treated as a custom attribute on the part. Custom attribute columns must match a configured attribute key for your organization; unknown columns cause a validation error. For general import behavior, empty cell handling, and error reporting, see Importers.