Importing Data

Moving in from spreadsheets or another system? Svalog bulk-imports your master data — products, customers, suppliers, bills of materials and users — from Excel or CSV. Download a ready-made template, fill it in, and upload; existing records are never overwritten.

Overview

Svalog lets you bulk-import master data from Excel (.xlsx) or CSV files. This is useful when setting up a new company, migrating from another system, or adding large numbers of records at once.

The following entities support import:

  • Products — from the Products list page
  • Customers — from the Customers list page
  • Suppliers — from the Suppliers list page (Purchasing module)
  • Bills of Materials — from the Bills of Materials list page (Manufacturing module)
  • Users — from the Users page (admin only)
Import requires Manager or Admin role (Users import requires Admin).

How to Import

The import workflow is the same for all entity types:

  • 1. Go to the list page for the entity you want to import (e.g. Products).
  • 2. Click Download Template — this downloads a pre-formatted Excel file with column headers, example rows, and dropdown validation where applicable.
  • 3. Fill in the template. Delete the example rows. Required columns are highlighted in yellow.
  • 4. Save the file as .xlsx or .csv.
  • 5. Click Import on the same list page and select your file.
  • 6. Svalog processes each row and reports how many records were created, skipped (already exist), and any errors.
Existing records are never overwritten — rows that match an existing code or email are skipped. Check the result summary after each import for details.

Products Import

Required columns (highlighted yellow in the template): sku, product_name, product_type.

All columns:

  • sku — Unique product code. Rows with an existing SKU are skipped.
  • product_name — Display name of the product.
  • description — Optional longer description.
  • sell_price — Selling price (default: 0 if left blank).
  • base_cost — Purchase/production cost (default: 0 if left blank).
  • product_type — Must be one of: finished_good, raw_material, service. A dropdown is provided in the template.
  • category — Optional free-text category label.
  • is_saleable — true/false. If left blank, defaults to true for finished_good and service, false for raw_material.
  • is_purchasable — true/false. If left blank, defaults to true for raw_material, false otherwise.
  • is_manufactured — true/false. If left blank, defaults to true for finished_good, false otherwise.
  • is_component — true/false. If left blank, defaults to true for raw_material, false otherwise.
  • reorder_point — Stock level that triggers a reorder alert.
  • reorder_quantity — How many units to reorder.
  • lead_time_days — Supplier lead time in days.
  • uom_name — Name of the unit of measure (must match an existing UoM in Svalog, e.g. "kg", "pcs").
The product_type column has a dropdown in Excel. Smart defaults are applied automatically for the flag columns (is_saleable, is_purchasable, is_manufactured, is_component) based on product_type if you leave those columns blank.

Customers Import

Required columns: customer_code, customer_name.

All columns:

  • customer_code — Unique customer identifier. Rows with an existing code are skipped.
  • customer_name — Full name of the customer or company.
  • customer_type — company or individual (dropdown in template). Defaults to company if blank.
  • email — Contact email address.
  • phone — Contact phone number.
  • tax_id — VAT or tax registration number.
  • billing_address_line1 — First line of billing address.
  • billing_address_line2 — Second line (optional).
  • billing_city — City.
  • billing_postal_code — Postal / ZIP code.
  • billing_country — Country name or code.
  • payment_terms — Default payment terms in days (e.g. 30).
  • currency — Default currency code (e.g. EUR, USD).
  • notes — Internal notes.

Suppliers Import

Required columns: supplier_name.

All columns:

  • supplier_code — Optional unique code. If omitted, one is auto-generated.
  • supplier_name — Full name of the supplier. Rows with the same name are skipped.
  • contact_person — Primary contact name.
  • email — Contact email address.
  • phone — Contact phone number.
  • tax_id — VAT or tax registration number.
  • payment_terms — Default payment terms in days.
  • currency — Default currency code.
  • notes — Internal notes.

Bills of Materials Import

BOM import uses one row per component. A BOM with multiple components spans multiple rows — the bom_name, output_product_sku, and output_qty columns repeat on each row for the same BOM.

Required columns: bom_name, output_product_sku, output_qty, component_sku, component_qty.

All columns:

  • bom_name — Name of the Bill of Materials. BOMs with the same name are skipped.
  • output_product_sku — SKU of the finished product this BOM produces. Must exist in Svalog.
  • output_qty — How many units of the finished product this BOM produces.
  • output_uom_name — Unit of measure for the output quantity (optional; must match an existing UoM).
  • version — Optional version label (e.g. "1.0", "Rev B").
  • component_sku — SKU of the component used. Must exist in Svalog.
  • component_qty — Quantity of the component required per production run.
  • component_uom_name — Unit of measure for the component quantity (optional).
  • scrap_factor — Extra material allowance as a decimal, e.g. 0.05 = 5% extra. Leave blank or 0 for no scrap.
  • notes — Notes for this component line.
All products referenced (output and components) must already exist in Svalog before importing BOMs.

Users Import

Admin only. Required columns: email, full_name, role.

All columns:

  • email — Login email address. Must be unique. Rows with an existing email are skipped.
  • full_name — The user's display name.
  • username — Optional alternative login identifier.
  • role — Must be one of: admin, manager, staff (dropdown in template).
  • allowed_modules — Comma-separated list of modules the user can access, e.g. "sales,analytics". Leave blank to allow all company modules. Not applicable for admin role.
Imported users are created without a password. An invite link must be shared with each user so they can set their own password. You can find the invite link on each user's detail page after import.