{% extends 'bom/bom-base.html' %} {% load static %} {% load materializecss %} {% block head-title %}{{ title }}{% endblock %} {% block bom-menu %}{% endblock %} {% block content %}

Any file IndaBOM exports can be edited and imported back. Rows that match existing records update the fields they provide; blank cells leave values alone; nothing is deleted except BOM lines you replace. You'll see every change before anything is saved.

{% include 'bom/starter-part-classes-prompt.html' %}
{% csrf_token %}

{% for value, name in import_type_choices %} {% endfor %}

{{ upload_bom_form.parent_part_number|materializecss:'s12' }}

Optional. Attach all rows as direct children of this assembly. Omit when the CSV includes a level column. Add to BOM keeps its existing subparts and adds to their quantities; Replace BOM sets its BOM to match the file.

{% for name in seller_names %}

Optional. Used for rows without a seller value; created if it doesn't exist yet.

Choose file
File formats

The first row holds column names; they are case-insensitive and unrecognized columns are ignored. Each type's columns are below, and an export from IndaBOM already uses them.

Parts

Each row is one part. A row that names an existing part (by part number, or by manufacturer part number) updates it; any other row creates a part. Part classes are never changed by an import. Download a template CSV set up for your organization's numbering{% if organization.number_scheme == 'S' %} and part classes{% endif %}, or edit an export of your parts list.

{% if organization.number_scheme == 'S' %} {% else %} {% endif %}
Column Accepted names Notes
part_class or part_number class, part_category Provide one or both. part_class is the class code (e.g. 500) and IndaBOM assigns the next item number. part_number is a full number like {{ organization.example_part_number }}; an existing number updates that part. When both are given, part_number wins.
part_number part number, part no Any unique number, e.g. {{ organization.example_part_number }}. An existing number updates that part.
revision rev, part_revision Up to 4 characters. Required to create a part. For an existing part it picks the revision to update: the latest when the column is left out, a new revision when the value is unknown. Released and Obsolete revisions keep their description and properties.
description desc Up to 255 characters. Required to create a part; blank keeps an existing description.
manufacturer_name
manufacturer_part_number
manufacturer, mfg
mpn, mfg_part_number
Include both to attach a manufacturer part; the manufacturer is created if unknown. manufacturer_part_number also identifies an existing part when part_number is blank. A new pair is added to the part; the primary manufacturer part is never changed.
seller, unit_cost, nre_cost, … One vendor price per row, using the vendor prices columns below. Requires a manufacturer part; unit_cost is required to create a price.
property_<code> the property's name Custom properties defined in Settings → IndaBOM. property_<code>_units holds the unit symbol (e.g. mV) for a property with a quantity of measure.
Vendor prices

Each row is one price break, identified by manufacturer part, vendor and minimum order quantity. A matching price is updated, any other row creates one, and parts are never created. Download a template CSV, or edit an export of your vendor prices.

Column Accepted names Notes
part_number or
manufacturer_part_number
part number
mpn, mfg_part_number
Identifies an existing part. With manufacturer_name the pair identifies the manufacturer part; a part without one gets it created.
seller part_seller Vendor name, created if unknown. Rows without one use the default vendor chosen above.
unit_cost part_cost Cost per unit in your organization's currency. Currency symbols and thousands separators are accepted. Required to create a price.
minimum_order_quantity moq Part of the price's identity; blank means 1.
nre_cost nre Non-recurring engineering cost.
seller_part_number seller_pn, spn The vendor's own catalog number.
minimum_pack_quantity mpq Pack or reel size.
lead_time_days lead_time, lt Lead time in days.
Bill of materials

Each row is one BOM line. Parts and revisions are created if they don't exist, or updated if they do. Released revisions are added as they are and Obsolete revisions are skipped. When a sub-assembly has rows beneath it in the file, its BOM is set to match those rows; a sub-assembly listed without rows beneath it is left alone. Vendor price columns are ignored. {% if organization.number_scheme == 'S' %} Download a sample CSV {% else %} Download a sample CSV {% endif %} or edit an indented BOM export.

Column Accepted names Notes
part_number or
manufacturer_part_number
part number
mpn, mfg_part_number
Identifies the subpart. The part must already exist when using manufacturer_part_number.
quantity count, qty Defaults to 1 if empty.
level Nesting depth (1 = direct child). Required unless a Parent part number is given above, in which case all rows are treated as level 1.
reference designator Comma-separated list (e.g. R1, R2). Count must match quantity.
do_not_load dnl, dnp Mark as Do Not Load. Values: y, x, yes, true.
revision rev Target revision. Defaults to 1 if omitted.
description desc Part description, up to 255 characters.
{% endblock %} {% block bom-script %} {% endblock %}