Skip to main content
All CollectionsIntegrationsCSV Files Integration
Synchronise components information and stock levels by importing CSV files
Synchronise components information and stock levels by importing CSV files

Step-by-step guide on uploading your CSV files to Luminovo's servers.

Timon Ruban avatar
Written by Timon Ruban
Updated over a week ago

Introduction

By importing CSV files to our servers, you can synchronise the following data:

  • Components Information

    • IPN, MPN, Manufacturer, Description, Package

  • Inventory (Stock Levels)

    • IPN, Available Stock, Total Stock, Unit Price, ...

To see the full list of possible data input, take a look at the templates below.

💡 If you are newly integrating your ERP with Luminovo, we recommend you use the new REST API for that. The process is documented here in detail. Going forward, the file-based process is only supported for backwards compatibility and does not support new features such as the CPN support.

Step 1. Prepare the CSV file

Upload frequency

You can upload your data to Luminovo anytime. However the processing of your CSV files happens only once per day at midnight of Central European Time (CET).

Hence, we recommend to updating your data around 10 pm CET, so that you have the most recent data.

General Guidelines for CSV files

Formatting

  • Follow the CSV format in RFC 4180

  • Use either , or ; as a separator

  • Quote all of your values to avoid breaking the format. Like this:

    "IPN";"Manufacturer";"MPN";"Description";... 
  • Use UTF-8 encoding

  • Escape special characters, such as backslashes or inch-signs. For example the value Wire 3/8" should appear in the file as "Wire 3/8"""

  • Decimal separator. Please make sure to use only , or . for the decimal separator. A thousand separator is not supported.

    ✅ Supported number format

    1234,56
    1234.56

    ❌ Unsoported number format:

    1.234,56
    1,234.56

Naming

For your data to get processed, you need to name your file according to the name of your tenant. The file names should look like follows:

  • luminovo_TENANTNAME_ipns.csv

  • luminovo_TENANTNAME_inventory.csv

If your tenant's URL is amazing-oem.luminovo.com, replace TENANTNAME -> amazing-oem. With this, your file names should look like:

  • luminovo_amazing-oem_ipns.com

  • luminovo_amazing-oem_inventory.csv

Templates

For both of the CSV files you can find the templates below.


Components (Internal part numbers) CSV File

File name format: luminovo_TENANTNAME_ipns.csv

Possible Columns

Column

Description

IPN

(required) The internal part number you use to reference an article in your ERP. Sometimes also referred as article number

MPN

(optional) The manufacturer part number of the part. This will be taken together with the manufacturer to match your IPN to a part. The more accurate this information is the higher the likelihood we will be able to match the part.

Manufacturer

(optional) The manufacturer of the part

Description

(optional) A description of your part

Package

(optional) The part package (e.g. SOT23). For SMT packages like 0603 we will assume it is given in the imperial system (measured in thous/inches). Add it as 0603 - metric if it is given in the metric system (measured in mm).

Frequently asked questions about the component import

What if one IPN has multiple part alternatives?

Often one IPN is matched to multiple approved parts (with different manufacturers and MPNs). In that case, simply add a row (with the same IPN, but possibly different Manufacturer , MPN or Description) for each part alternative to the .csv.

If an MPN as well as a manufacturer is provided, we will only match parts that correspond to both. That is, we will not match a part to an IPN in cases where we find a part with the right MPN but the manufacturer is different. If no manufacturer is provided we will match all parts with the corresponding MPN.

In the future, we also plan to automatically match generic parts (like manufacturer free resistors or capacitors) from the descriptions provided for your IPNs, so if your IPN represents a manufacturer-free part specify "Free" for Manufacturer , put the specification of the technical parameters into the Description and the package into the Package column.

What if my ERP doesn't have the Manufacturer and MPN available in its own field?

We often see EMS that don't have this information readily available in their ERP, but instead just have a long text description field that might contain one or more manufacturers and MPNs: in that case just append all of your relevant descriptions into one long string that you put into the Description column. If you have a "short" description and a "long" description of your IPN, you can add two rows with the same IPN and add the short description in the first row and the long description in the second.

If you only provide descriptions and no manufacturers and MPNs, we will not be able to match parts automatically. But Luminovo provides functionality to manually match parts and IPNs after your upload. You will be able to do a search on the descriptions you provided, just as you can probably search for your IPNs in your ERP today. The good thing: once you've matched the parts and IPN in Luminovo once, we will remember the match and use it for your next BOM.

What if I delete an IPN or remove or add a part to an existing IPN?

We assume the .csv that you upload reflects the up-to-date list of IPNs from your ERP. That means if you add a new row with a new MPN in a new upload, we will add that IPN. If you remove an IPN from the .csv we will delete the IPN in Luminovo. If you change the MPN, Manufacturer or Description provided for an IPN (e.g. because you added or removed an approved part), we will delete all automatic and manual matches made from the old part specification for that IPN and start the automatic matching of parts to IPNs anew.


Inventory CSV File

File name: luminovo_TENANTNAME_inventory.csv

Possible Columns

Column

Description

IPN

(required) The internal part number you use to reference an article in your ERP. Required.

Available stock

(optional, defaults to 0) The freely available stock in your inventory, that can be used for new projects. This is what will be used for generating solutions in Luminovo. Fractional stock is supported.

Total stock

(optional) The total stock in your inventory (including stock already assigned to a different project). This won't be used for generating solutions, but only displayed as an additional info in Luminovo. Fractional stock is supported.

Unit price (Amount)

(optional, defaults to 0) The price per part you want to use for calculating solutions. It is up to you to decide what you want to put here. Some like to treat their inventory as 'free'. Some use the last purchase price or the average price.

Unit price (Currency)

(optional, defaults to EUR) 3 letter currency code as defined by ISO-4217.

Standard lead time (Days)

(optional) If you know this, you can provide a standard lead time (in days) that it takes a distributor to get new parts in stock.

Packaging

(optional) The packaging of the parts. Needs to be one of: AmmoPack, Bag, Bulk, Reel, ReReel, Tape, Tray, Tube, Carton.

Unit of measurement (Quantity)

(optional, defaults to 1) The unit of measurement for the quantities provided in Available stock and Total stock. If the part in your inventory is better measured in a different unit, you can set the unit of measurement here. For example, if your IPN refers to a cable roll, where each roll has 30 meters of cable, you could provide 30 and Meter for the Unit of measurement. If you specify your Available stock as 10, we will then know that you have 300 meters of cable available.

Unit of measurement (Unit)

(optional, defaults to 'Piece') See Unit of measurement (quantity). Needs to be one of: Kilogram, Meter, Liter, Piece

Frequently asked questions about the inventory import

What if I have multiple inventories?

We currently only support one inventory (that means you can only have one row per IPN in the csv). You can either add your different inventories together in the available and total stock or choose the most important inventory you want to integrate with Luminovo.


2. Do the export

After you have prepared your CSV files in the required format, proceed with uploading them to Luminovo's servers.

To upload the data to our servers we will use a command-line program azcopy. This instruction will guide you through the necessary steps

Step 1. Install AzCopy

To upload the files to our servers, you will use Microsoft's AzCopy command line tool (installation instructions can be found here). It is available for Windows, macOS and Linux.

Step 2. Request Credentials From Us

You can request credentials by simply opening your Luminovo account and use the support chat.

The credentials have the following format:

{ 
"appId": "ed1cf692-a353-4654-a4e6-f7b208246a09",
"displayName": "tenantname-erp",
"password": "pjP.x5~eRvP-5y2dbn0m4D62SIsabOg9Jk",
"tenant": "b063570f-c267-43be-83fb-c30a28eab1a2"
}

Step 3. Set Environmental Variables

Before running the upload you will need to set the following environment variables in your script.

Make sure to replace default values by the values you got with the credentials

  • AZCOPY_SPA_APPLICATION_ID with your appId

  • AZCOPY_SPA_CLIENT_SECRET with your password

  • AZCOPY_TENANT_ID with your tenant

Then, depending on your system, open your command-line app:

MacOS

Open the terminal and paste the commands with your credentials

export "AZCOPY_AUTO_LOGIN_TYPE=SPN"
export "AZCOPY_SPA_CLIENT_SECRET=YOUR_PASSWORD"
export "AZCOPY_SPA_APPLICATION_ID=YOUR_APP_ID"
export "AZCOPY_TENANT_ID=YOUR_TENANT_ID"

Windows

Open command prompt (CMD) and enter:

set "AZCOPY_AUTO_LOGIN_TYPE=SPN"
set "AZCOPY_SPA_CLIENT_SECRET=YOUR_PASSWORD"
set "AZCOPY_SPA_APPLICATION_ID=YOUR_APP_ID"
set "AZCOPY_TENANT_ID=YOUR_TENANT_ID"

Windows PowerShell (for more advanced users)

$env:AZCOPY_AUTO_LOGIN_TYPE="SPN"
$env:AZCOPY_SPA_CLIENT_SECRET="YOUR_PASSWORD"
$env:AZCOPY_SPA_APPLICATION_ID="YOUR_APP_ID"
$env:AZCOPY_TENANT_ID="YOUR_TENANT_ID"

Step 4. Upload your files

To upload your .csv files, all you need to do is execute the following command.

Make sure you substitute tenantname (in the filename and at the end of the command) with the first part of the URL you use to login to Luminovo (usually your company name in lowercase letters).

  • For exampe, if you access Luminovo through https://amazing-ems.luminovo.com, replace tenantname-erp --> amazing-ems-erp

Be aware to use the full path to your files! Replace luminovo_tenantname_ipns.csv and luminovo_tenantname_inventory.csv with the full paths to your files.

After replacing the tenantname-erp and adjusting the paths to your files, in the command line interface execute:

azcopy copy luminovo_tenantname_ipns.csv "https://lumiquoteproderp.blob.core.windows.net/tenantname-erp"
azcopy copy luminovo_tenantname_inventory.csv "https://lumiquoteproderp.blob.core.windows.net/tenantname-erp"


3. Set up a daily export and upload job

Every night, starting at midnight CET, we will check for newly uploaded files and sync your data into Luminovo's database.

Ideally, you automate the export and upload steps and set up a job that uploads your data to Luminovo every night (before 12 am so that it lands on our servers before we run the sync).

We suggest that you check with your ERP provider if your ERP supports scheduling an automated script, or otherwise you can set up an automated job yourself (e.g. via cron). On windows, you can use the built-in task scheduler for this.

4. Common issues in the file format and recommended solutions

1. Column headers

  • The column header row is often missing in the .csv or the columns are named incorrectly.

    • The .csv must include a header row as indicated in the sample files.

    • The column headers should be named exactly as described in the templates. This also goes for capitalisation and spaces as well as special characters such as brackets (correct example would be: "Standard lead time (Days)")

2. UTF-8 encoding

  • The .csv must be UTF-8 encoded.

  • UTF-8 encoding should be selected when exporting the data from the ERP system.

  • Other encodings, such as ISO 8859-1/latin-1, will cause errors during the import if special characters are present in the file(s).

3. Using double quotes in values

For .csv files:

  • We often see that values are not escaped using double quotes.

  • We recommend to always use double quotes if the value includes a special character such as , or ;.

    • Examples:

      • E.g. the following value should look like this: "Manufacturer, Inc.".

      • If the value itself includes double quotes, it must be escaped by using double quotes. For example, the value Wire 3/8" should appear in the file as ...,"Wire 3/8""",....

      • The valueLCD 19" monitorshould appear in the file as...,"LCD 19"" monitor",...

4. Invalid values

  • Only English values are allowed in the columns "Packaging" and "Unit of measurement (Unit)" , e.g. Reel or Piece.

  • The column "Manufacturer" must only include the manufacturer name. Please avoid using distributor names in this column.

  • The column "Unit of measurement (Quantity)" is only to be filled in if the stock is measured in parts or multiples of the "Unit of measurement (Unit)" .

  • The column "Standard lead time (Days)"is only to be populated if a reliable value for the lead time is known.

5. Frequently Asked Questions (FAQ)

How do I understand if the upload worked?

Uploading CSV files provides little debugging possibilities. When uploading your CSV files to Luminovo's server, you can see, if the upload worked in general. We process the files you have uploaded only once/day. On the next days, you will be able to understand if uploading your data worked by checking the last update date in your Luminovo Portal.

Be aware: the update dates for the components and for the inventory are not same. To check the inventory update date, find an inventory which has been recently changed and look up if there was an update in the IPN overview -> Offers

What if I uploaded the data, but the update is not visible in Luminovo?

There could be multiple reasons for this. Let us walk through the most common ones:

  1. Check if uploading the data worked. Sometimes the routine uploading the data stops working. Hence, first of all, check on your side if the upload was even happening in the first place.

  2. If you are not able to check if the upload was successful, try triggering the upload manually and wait until the next day to see, if the data got updated.

  3. If you triggered the manual upload successfully, but the data did not appear in Luminovo, check the files you have uploaded for any errors.
    Before you contact Luminovo's support, please check if you are uploading valid CSV files. You can use open source tools for it or simply open the file in a code editor. Many code editors can highlight some of the problems. You may also want to try importing your CSV in Excel.Watch out for the most common problems described above.

  4. If any of the steps 1-3 worked, contact Luminovo's support team!

How can I upload inventory and components from different stock locations?

Uploading components and inventory data from different stock locations is only possible via Luminovo's API. Learn more about the API connection in the corresponding section: API Integration with Luminovo.

✉️ Do you have questions related to your ERP integration?

Reach out to our Solution Engineers under [email protected].

File templates

Did this answer your question?