Hegemi

Bulk modify

Hegemi's bulk import feature allows you to create, modify, or delete large numbers of items, bills of materials (BOMs), and vendor items at once using a spreadsheet. This is particularly useful for:

  • Data Migration: Importing your catalog from another system.
  • Mass Updates: Exporting your current inventory, editing prices, descriptions, inventory levels, etc, in bulk as a spreadsheet, and re-importing.
  • Cleanup: Deleting obsolete items.

Bulk import

The import format

Hegemi uses a format that allows you to define items, their place in a BOM hierarchy, and their vendor sources all in a single worksheet.

You can download a template containing headers and example data from the Import dialog in the application.

Row structure

Row 1 contains the column headers. Row 2 contains documentation describing each column. Data import begins on Row 3.

Columns overview

The format mixes three types of data in one row:

  1. Item Definition: Basic properties of the item (Name, Part Number, Description, etc.).
  2. BOM Link: Defines if this item is a child of another item (the "Parent").
  3. Vendor Sourcing: Defines where this item can be purchased.

Here are the key columns:

ColumnDescription
modeAction to take: New (create), Modify (update), Delete (remove), or Ignore (skip).
idFor New items: use any number (e.g. 1, 2, 100) to reference this item elsewhere in the sheet.
For Modify: the actual Database ID of the item.
nameThe name of the item.
parentId(Optional) The id (or name) of another item in this sheet (or database) that is the parent of this item. This creates a BOM connection.
irQuantityIf parentId is set, how many of this item go into the parent?
vendorName(Optional) Name of a vendor to source this item from.
pricePerUnitThe price from that vendor.

Understanding IDs and references

When you export data from the database, its item ID is real. If you wish to modify an existing item, you will need this item ID. However if you're creating a new row (New type), these item IDs are strictly temporary and exist only within the context of the spreadsheet, for purposes of referencing (parentId etc).

Scenario: You are importing a "Robot Arm" (Parent) which contains a "Motor" (Child). Neither exists in the database yet.

  1. Row 1 (Parent):
    • mode: New
    • id: 1 (This is a temporary ID for this file)
    • name: "Robot Arm"
  2. Row 2 (Child):
    • mode: New
    • id: 2
    • name: "Motor"
    • parentId: 1 (Links this Motor to the Robot Arm above)
    • irQuantity: 1

When Hegemi processes this, it will create the Robot Arm first, get its real Database ID, create the Motor, and then link them together in the Bill of Materials.

Tip

You can also use text names for parentId, rather than number IDs. If parentId above is "Robot Arm", Hegemi will look for an item named "Robot Arm" in the sheet or the database. This can make the hierarchies in the sheet easier for a person to glance at and comprehend. However the text must match the item name exactly.

Multiple references

You can reference the same item multiple times by reusing its id. This is useful for:

  1. Multiple Vendors: Define the item on one row, then add more rows with the same id but different vendorName and pricePerUnit.
  2. Multiple Parents: An item can be a child of multiple different parents. You can use the same screw in multiple assemblies, for example. Just add more rows with the same id but different parentId.

Hegemi will merge the item definition from all rows sharing the same id. If a field (like description) is filled in one row and blank in another, the filled value is kept.

Features

1. Modifying existing data

The bulk import tool is designed to handle mass edits just as easily as new data. Hegemi offers different export options depending on where you are in the application when invoking the bulk import menu:

  • Items Table: The full items database can be exported here. This is the primary way to mass-edit Item properties, BOM structures, and Vendor sourcing.
  • Item Bill of Materials tab: offers an export of the current item only, in its full recursive hierarchy including children sub-assemblies.
  • Vendor items: all items for a particular vendor can be exported from the Vendor's Items tab. Alternatively, all vendors for a single item can be exported in the Procurement tab of an Item editor.

A common workflow for mass updates is:

  1. In the items tab, choose Download all items from the menu.
  2. Open the file. You will see columns like id pre-filled with the real Database IDs and mode set to Ignore.
  3. Change values (e.g., update pricePerUnit or description) on the rows of interest and change those rows' mode to Modify.
  4. Re-import the file. Hegemi will update the existing records matching those IDs.

Tip

You don't need to keep every row! If you only want to edit 5 items out of 1000, simply delete the other rows or set their mode to Ignore. The importer will skip them.

2. Custom Fields

If you have configured Custom Fields for Items, they can also be imported.

When you configure a Custom Field in settings, you assign it an Import Key (e.g., shelf_location). To import data into this field, simply add a column to your spreadsheet with that header name (case-insensitive).

  • Header: The Import Key defined in settings.
  • Value: The value for that item.

Data dictionary

Item fields

  • mode: New, Modify, Delete, Ignore.
  • id: Integer ID.
  • name: Required string.
  • description: Text description.
  • partNumber: Internal part number.
  • manufacturer: Manufacturer name.
  • manufacturerPartNumber: MPN.
  • units: each, m, kg, L, sq_m, etc. Supported units: each, m, mm, cm, km, in, ft, g, mg, kg, ton, lb, oz, L, mL, gal, fl_oz, qt, sq_m, sq_cm, sq_mm, sq_in, sq_ft.
  • reorderQuantity: Number.
  • serialize: true or false. If true, new instances will track serial numbers.
  • nUnserialized: Initial quantity of unserialized stock to add.

BOM fields (Item Reference)

These fields only apply if parentId is provided.

  • irId: Database ID of the BOM link (used for Modify).
  • parentId: ID or Name of the parent item.
  • irQuantity: Quantity required per parent instance.
  • irUnits: Units for the quantity (usually matches item units).
  • irNotes: Notes specific to this usage of the item in this BOM.

Vendor fields (Vendor Item)

These fields only apply if vendorName is provided.

  • viId: Database ID of the vendor link (used for Modify).
  • vendorName: Name of the vendor.
  • pricePerUnit: Cost.
  • priceCurrency: USD, EUR, etc.
  • vendorPartNumber: SKU at this vendor.
  • quantityPerUnit: Pack size (e.g., 100 for a box of screws).
  • quantityUnit: Unit of the pack (e.g., each).
  • minimumUnitQty: Minimum order quantity (MOQ).
  • leadTime: Days to delivery.
  • url: Link to product page.
  • viNotes: Notes on this vendor source.

Example: Robot Arm

Here is how a simple hierarchy looks in the import sheet:

modeidnameparentIdirQuantityvendorNamepricePerUnit
New1Robot Arm
New2Controller Board11
New3Chip21DigiKey2.50
New4Screw M324McMaster0.10

This creates:

  • Robot Arm (Root)
    • contains 1x Controller Board
      • contains 1x Chip (sourced from DigiKey)
      • contains 4x Screw M3 (sourced from McMaster)