Skip to content

Item CSV Import

The Item CSV Import allows users to perform Bulk Operations on the Items in their Arda tenant by importing a CSV file with the
item data and the desired actions on each row.

General Description

Supported Operations

The feature supports:

  • CREATE: Add a new Item to the tenant.
  • UPDATE: Modify an existing Item in the tenant. The modification will overwrite all fields in the Item with the values provided in the CSV file,
    EVEN IF THEY ARE BLANK.
  • DELETE: Remove an existing Item from the tenant.

CSV File Format

The expected file format is a conventional CSV file with the conventions:

  1. Fields are separated by commas.
  2. Text fields must be enclosed in double quotes if they contain commas or other special characters.
  3. Rows are separated by new lines.
  4. The first row must contain the headers with the field names.
  5. The order of the columns is not important and can be different in each file without affecting the import.
  6. The name of the columns is considered case-insensitive and must be unique. If it is not unique, the result is undefined, most likely causing an error, but it can also cause erroneous assignment of values to fields.

Special Columns

The file has two special columns that specify the action the user intends to perform on the row:

  1. Action: Specifies the action to be performed on the row. And it is required for all rows. Valid values are:
    1. ACTION_CREATE: Create a new Item
    2. ACTION_UPDATE: Update an existing Item
    3. ACTION_DELETE: Delete an existing Item
    4. ACTION_IGNORE: Ignore the row.
    5. ACTION_SKIP: Ignore the row but validate its contents.
  2. id: For Update and Delete actions, this column must contain the system unique identifier of the Item to be updated or deleted. For Create actions, this column is ignored and can be left blank. The column must be a valid UUID string corresponding to an existing, non-deleted Item in the tenant.

Column Descriptions

Each column in the CSV file corresponds to a field in the Item and can be named in the CSV with any of its known aliases. Unless explicitly stated, all columns are optional and can be left blank.

  • Action: Specifies the action to be performed on the row.
    • Aliases:
      • action
      • act
    • Values One-of:
      • ACTION_CREATE
      • ACTION_UPDATE
      • ACTION_DELETE
      • ACTION_IGNORE
      • ACTION_SKIP
  • id: The unique identifier of the Item. Required for Update and Delete actions.
    • Aliases:
      • Id
      • item_id
      • uuid
    • Values: UUID string corresponding to an existing, non-deleted Item in the tenant.
  • name: The name of the Item. This column is required for all actions.
    • Aliases:
      • name
      • item_name
    • Values: String up to 255 characters.
  • image_url: URL of the image representing the Item.
    • Aliases:
      • image_url
      • image
    • Values: Valid URL string.
  • type:
    • Aliases:
      • type
      • item_type
    • Values: String up to 100 characters.
  • sub_type
    • Aliases:
      • sub_type
      • item_sub_type
    • Values: String up to 100 characters.
  • facility
    • Aliases:
      • facility
    • Values: String up to 100 characters.
  • department
    • Aliases:
      • department
    • Values: String up to 100 characters.
  • location
    • Aliases:
      • location
    • Values: String up to 100 characters.
  • sub_location
    • Aliases:
      • sub_location
    • Values: String up to 100 characters.
  • sku
    • Aliases:
      • sku
    • Values: String up to 100 characters.
  • min_quantity
    • Aliases:
      • min_quantity
    • Values: Decimal greater than or equal to 0.
  • min_quantity_unit
    • Aliases:
      • min_quantity_unit
    • Values: String up to 100 characters.
  • item_notes
    • Aliases:
      • item_notes
    • Values: String up to 8000 characters.
  • card_notes_default
    • Aliases:
      • card_notes_default
    • Values: String up to 8000 characters.
  • taxable
    • Aliases:
      • taxable
    • Values: Boolean: true or false.
  • primary_supplier
    • Aliases:
      • primary_supplier
    • Values: String up to 100 characters.
  • primary_sku
    • Aliases:
      • primary_sku
    • Values: String up to 100 characters.
  • primary_order_method
    • Aliases:
      • primary_order_method
    • Values:
      • ORDER_METHOD_PURCHASE_ORDER
      • ORDER_METHOD_EMAIL
      • ORDER_METHOD_PHONE
      • ORDER_METHOD_IN_STORE
      • ORDER_METHOD_ONLINE
      • ORDER_METHOD_RFQ
      • ORDER_METHOD_PRODUCTION
      • ORDER_METHOD_TASK
      • ORDER_METHOD_THIRD_PARTY
      • ORDER_METHOD_OTHER
  • primary_url
    • Aliases:
      • primary_url
    • Values: Valid URL string.
  • primary_order_quantity
    • Aliases:
      • primary_order_quantity
    • Values: Decimal greater than or equal to 0.
  • primary_order_quantity_unit
    • Aliases:
      • primary_order_quantity_unit
    • Values: String up to 100 characters.
  • primary_unit_cost
    • Aliases:
      • primary_unit_cost
    • Values: Decimal greater than or equal to 0.
  • primary_unit_cost_currency
    • Aliases:
      • primary_unit_cost_currency
    • Values:
      • USD
      • EUR
  • primary_average_lead_time
    • Aliases:
      • primary_average_lead_time
    • Values: Integer greater than 0.
  • primary_average_lead_time_unit
    • Aliases:
      • primary_average_lead_time_unit
    • Values:
      • TIME_UNIT_MINUTE
      • TIME_UNIT_HOUR
      • TIME_UNIT_DAY
      • TIME_UNIT_WEEK
      • TIME_UNIT_STANDARD_MONTH
      • TIME_UNIT_STANDARD_YEAR
      • TIME_UNIT_LEAP_YEAR
  • secondary_supplier
    • Aliases:
      • secondary_supplier
    • Values: String up to 100 characters.
  • secondary_sku
    • Aliases:
      • secondary_sku
    • Values: String up to 100 characters.
  • secondary_order_method
    • Aliases:
      • secondary_order_method
    • Values:
      • ORDER_METHOD_PURCHASE_ORDER
      • ORDER_METHOD_EMAIL
      • ORDER_METHOD_PHONE
      • ORDER_METHOD_IN_STORE
      • ORDER_METHOD_ONLINE
      • ORDER_METHOD_RFQ
      • ORDER_METHOD_PRODUCTION
      • ORDER_METHOD_TASK
      • ORDER_METHOD_THIRD_PARTY
      • ORDER_METHOD_OTHER
  • secondary_url
    • Aliases:
      • secondary_url
    • Values: Valid URL string.
  • secondary_order_quantity
    • Aliases:
      • secondary_order_quantity
    • Values: Decimal greater than or equal to 0.
  • secondary_order_quantity_unit
    • Aliases:
      • secondary_order_quantity_unit
    • Values: String up to 100 characters.
  • secondary_unit_cost
    • Aliases:
      • secondary_unit_cost
    • Values: Decimal greater than or equal to 0.
  • secondary_unit_cost_currency
    • Aliases:
      • secondary_unit_cost_currency
    • Values:
      • USD
      • EUR
  • secondary_average_lead_time
    • Aliases:
      • secondary_average_lead_time
    • Values: Integer greater than 0.
  • secondary_average_lead_time_unit
    • Aliases:
      • secondary_average_lead_time_unit
    • Values:
      • TIME_UNIT_MINUTE
      • TIME_UNIT_HOUR
      • TIME_UNIT_DAY
      • TIME_UNIT_WEEK
      • TIME_UNIT_STANDARD_MONTH
      • TIME_UNIT_STANDARD_YEAR
      • TIME_UNIT_LEAP_YEAR
  • default_supplier
    • Aliases:
      • default_supplier
    • Values: String up to 100 characters. Should be the same as either primary_supplier or secondary_supplier.
  • card_size
    • Aliases:
      • card_size
    • Values:
      • CARD_SIZE_SMALL;
      • CARD_SIZE_MEDIUM
      • CARD_SIZE_LARGE
      • CARD_SIZE_EXTRA_LARGE
  • label_size
    • Aliases:
      • label_size
    • Values:
      • LABEL_SIZE_SMALL
      • LABEL_SIZE_MEDIUM
      • LABEL_SIZE_LARGE
      • LABEL_SIZE_EXTRA_LARGE
  • breadcrumb_size
    • Aliases:
      • breadcrumb_size
    • Values:
      • BREADCRUMB_SIZE_SMALL
      • BREADCRUMB_SIZE_MEDIUM
      • BREADCRUMB_SIZE_LARGE
      • BREADCRUMB_SIZE_EXTRA_LARGE
  • color
    • Aliases:
      • color
      • item_color
    • Values:
      • ITEM_COLOR_BLUE
      • ITEM_COLOR_RED
      • ITEM_COLOR_GREEN
      • ITEM_COLOR_YELLOW
      • ITEM_COLOR_ORANGE
      • ITEM_COLOR_PURPLE
      • ITEM_COLOR_PINK
      • ITEM_COLOR_GRAY

Validation and Error Handling

Each row is an independent action. Rows can succeed or fail independently. The import report shows the number of successful and failed rows. For failed rows, the report includes the row number (starting at 0 for the first data row) and a description of the error, including the field that caused it, if possible.

Validations at this point have been kept to a minimum to facilitate imports.

  • For URL and UUID fields, if they are not blank, they are checked for syntactic validity.
  • Only the name column is required for all actions, and cannot be blank.
  • For Update and Delete actions, the id column is required and must correspond to an existing, non-deleted Item in the tenant.
  • For enumerated fields (e.g., primary_order_method, card_size, etc.) or boolean fields (e.g., taxable), if they are not blank, they must match one of the valid values exactly, including case sensitivity.
  • For numeric fields (e.g., min_quantity, primary_unit_cost, etc.), if they are not blank, they must be valid numbers and meet the specified constraints (e.g., greater than or equal to 0).
  • For string fields with length limits, if they are not blank, they must not exceed the specified length.

Customer Service Notes

  1. The list above reflects the aliases that the current product (2025-10-07) recognizes. The intent is to make this configurable
    by tenant or even by user or individual import. In the meantime, it is very easy to add additional aliases to the system. Please
    create a PUNCH LIST ticket with any additional aliases that should be supported for each field. Alphanumeric character and spaces are allowed
    in aliases. Keep in mind they are case-insensitive but SHOULD NOT BE DUPLICATED.
  2. The specific values for enumerated fields (e.g., primary_order_method, card_size, etc.) or boolean fields (e.g., taxable)
    are not configurable at this time and need to be exactly as specified above, including case sensitivity. In the future, more user friendly values will be supported.
  3. The order of columns in the CSV file is not important and can be different in each file without affecting the import.
  4. Validation of fields is kept at a minimum. If additional validations are required, please create a PUNCH LIST ticket with the specific validation needed.

Comments