Specification of CSV version of AMIF.IO (Auto-Motive Import Format).
- It is a CSV file that contains machine-readable information of offered items from suppliers to retailers.
- It consists of rows, which contains data for each item (vehicle part), that the supplier is offering.
- Each field on a row is separated by a semicolon ;.
- Values can be enclosed in the double quotation mark "xx", which allows the item's value to contain a semicolon.
- If item's value contains double quotation mark, it must be doubled "".
- Character encoding must be UTF-8.
- Special UTF-8 characters are not allowed.
- The first row must contain a header with column names.
- Order of columns is not defined.
- If the file is sent to retailers regularly through data repository (e.g. FTP), the order of column must retain the same.
- The following part are description of each column and requirements for its fields.
- If a column doesn't satisfy all requirements, that column should not exist in CSV file.
- See example csv files:
- Standard amif.csv with typical values for Tecdoc and non-Tecdoc items
- Simpler version suitable for Tecdoc items amif_tecdoc_brand_id.csv with tecdoc brand id specified
- Simpler version suitable for Tecdoc items amif_tecdoc_brand_name.csv with tecdoc brand name specified
Supported values
Values that can be currently imported from CSV file columns.
- itemCode
- orderingNumber
- brandName
- productCodes.mpn
- productCodes.ean
- productCodes.sku
- tecdocBrandId
- tecdocBrandName
- tecdocArticleNumber
- productName
- categoryPaths
- purchasePrice
- vatPercents
- refundableDepositPrice
- refundableDepositCode
- warranty
- stockAvailableCount
- parameters.*
- parameters
- multipleBuyQuantity
- minimumBuyQuantity
- maximumBuyQuantity
- tecdocSearchNumber
- mainImageUrl
- additionalImageUrls
- tag.onSale
- tag.new
- tag.inAction
- tag.discount
- warrantyForCompany
- isReturnForbidden
- disableDiscounts
- productGroups
Detailed info about several columns
itemCode
- Unique item (vehicle part) code for unambiguous identification in supplier's system.
- Required field.
- Maximum length of 36 characters.
- Only ASCII characters allowed.
- Usually this is product selling code of supplier.
- In the file, there cannot be any other item with the same code.
- Every item must have its own code and cannot be changed.
- A code can not be reused for any other different item in the future.
- Space, hyphen, slash, and other characters must remain at the same position over time.
- The code should be composed only of characters from ASCII set.
- Special UTF-8 characters (e.g. different forms of whitespace, except for the standard whitespace) are not allowed.
- The code can be a numeric product ID from the supplier's system or another unique identifier, such as UUID.
✅ Correct:
- 1234
- 123e4567-e89b-12d3-a456-426655440000
- BOS 098 765 432 1
- 12-3456/78
❌ Wrong:
- 12―Ŵ34᐀ŤÄ56Ĉ/78
orderingNumber
- Item (vehicle part) ordering code in supplier's system.
- Optional field.
- Maximum length of 36 characters.
- Only ASCII characters allowed.
- Product selling code of supplier.
- This code can be omitted, if it matches unique item code itemCode.
- If this code exists, there cannot be any other item with that same code.
- Every item must have its own code.
- The code should be composed only of characters from ASCII set.
- Special UTF-8 characters (e.g. different forms of whitespace, except for the standard whitespace) are not allowed.
✅ Correct:
- BOS 098 765 432 1
- 12-3456/78
❌ Wrong:
- 12―Ŵ34᐀ŤÄ56Ĉ/78
brandName
- Brand name of the vehicle part.
- Required field.
- Maximum length of 80 characters.
- Whole name of brand name, as it is publicly known for; it is not the full company name, therefore this field is without GmbH, Ltd., s.r.o., etc.
- It cannot be abbreviated or modified.
- One item cannot have multiple brand names (on one row).
- If the supplier offers identical item from another brands, each item of each brand must be on detached line with different itemCode.
- This field cannot be filled with an imaginary brand name.
- If a brand name is listed in TecDoc catalogue, the field tecdocBrandId or tecdocBrandName must also be filled.
✅ Correct:
- Bosch
- Vika
- Polmo
- Ford
- TRW
❌ Wrong:
- Robert Bosch GmbH
- INA-GATES-IDROMEC
- INA,LuK,FAG
- PLM, MEYLE Sale
- O.E. part
- REFUNDABLE PART
- ORIG. RENAULT
- OLEJE I AKCESORIA
- 102
- repair set
productCodes.mpn
- Vehicle part number identified by the manufacturer – MPN.
- Conditional required field.
- Maximum length of 25 characters.
- Only ASCII characters allowed.
- This field cannot contain name for abbreviation of manufacturer.
- If there is no official part number given by the manufacturer, this field should be blank.
- This field cannot be filled with an imaginary value.
- This field should always be filled when the item is identified with part number by the manufacturer.
- This field is required for all items listed in TecDoc and for cross-items (see 2.5).
✅ Correct:
- 098 765 432 1
- GDB1330
❌ Wrong:
- BOS 098 765 432 1 (contains manufacturer's abbreviation)
- 12―Ŵ34᐀ŤÄ56Ĉ/78
tecdocBrandId
- Brand ID in TecDoc catalogue.
- Conditional required field.
- Only characters 0-9 allowed.
- This field, together with tecdocArticleNumber, identify item (vehicle part) in TecDoc catalogue.
- If brandName of an item is listed in TecDoc catalogue, this field will be filled with that brand's ID from TecDoc catalogue.
For example, with item Bosch 0 242 235 607:
- brandName will be Bosch,
- manufacturerPartNumber will be 0 242 235 607,
- tecdocBrandId will be 30 (brand ID of Bosch from TecDoc catalogue),
- tecdocArticleNumber will be 0 242 235 607
This field can also be used to link cross-items, i.e. connect an item isn't listed in TecDoc with an item listed in TecDoc and those items can be used interchangeably in the same vehicle.
For example, with item Vika 001911023C, whose brand and part number isn't listed in TecDoc, but is interchangeable with Meyle CS1063:
- brandName will be Vika,
- manufacturerPartNumber will be 001911023C (assigned by Vika),
- tecdocBrandId will be 425 (brand ID Meyle from TecDoc catalogue)
- tecdocArticleNumber will be CS1063.
If an item isn't listed in TecDoc, and also there isn't any interchangeable item in TecDoc catalogue, this field and tecdocArticleNumber field should be blank. This field cannot be filled with an ID that does not exist in TecDoc catalogue.
tecdocBrandName
- Brand name in TecDoc catalogue.
- Conditional required field.
- Maximum length of 80 characters.
- An alternative field for tecdocBrandId in the case where tecdocBrandId can not be used.
- Usage is the same as tecdocBrandId, except that brand name from TecDoc is filled instead of brand ID.
- This field cannot be filled with a brand name that does not exist in TecDoc catalogue.
- tecdocBrandId field is preferred and has higher priority than tecdocBrandName field.
For example, with item Vika 001911023C, whose brand and part number isn't listed in TecDoc, but is interchangeable with Meyle CS1063:
- brandName will be Vika,
- manufacturerPartNumber will be 001911023C (assigned by Vika),
- tecdocBrandName will be Meyle,
- tecdocArticleNumber will be CS1063.
tecdocArticleNumber
- Identification number of item (vehicle part) in TecDoc catalogue.
- Conditional required field.
- Maximum length of 36 characters.
- This field, together with tecdocBrandId, identify item (vehicle part) in TecDoc catalogue.
- Linking cross-item with TecDoc item is described in the tecdocBrandId field description.
- This field cannot be filled with an imaginary value, only with article number that exists in TecDoc catalogue.
productName
- Human-readable product name.
- Conditional required field.
- Maximum length of 100 characters.
- Optional for TecDoc item, because with tecdocArticleNumber and tecdocBrandId or tecdocBrandName, product name can be identified by using TecDoc catalogue, for example a product name from TecDoc catalogue: BOSCH Spark Plug 0 242 235 607.
- This field cannot contain abbreviation, information about returnable parts.
- This field should contain characters with diacritic, and be typographically correct.
- If a product name doesn't meet these requirements, and that product is listed in TecDoc catalogue (and the above mentioned fields are filled), this field should not be filled.
✅ Correct:
- Multispray foam 400 ml
❌ Wrong:
- strednÌ dÌl výf. MERC.300 D 3.0
- brzdový třmen - vratný dÌl
- ZAP.SV.SUPER+ FR7LDC+ BALENÕ 10 KS
categoryPaths
- Category, where item is stored in suppliers' system.
- Optional field.
- This field contains category path, where each subcategory is separated by a greater-than sign Main category > Subcategory > Subcategory.
- This field can also contain multiple category paths, in this case, each path is separated by a vertical bar |.
- Two examples are listed below in Correct where an item is categorized in more than one category.
✅ Correct:
- Brake system > Disc brake | Bosch > Disc brake
- Oil > Motor > 10W-40 | Oil > Castrol
❌ Wrong:
- RS01
- Brk.sys SKODA,VW, ALT. SKODA/FAVORIT-FELICIA
purchasePrice
- Buying price without VAT for retailer.
- Required field.
- Represented by a positive decimal number.
- Only digits, and a dot or a comma as decimal separator allowed.
- Currency is specified between parentheses in the column name in compliance with ISO 4217.
- Whenever possible, the currency should be the one that the supplier carries out pricing, i.e. without conversion into retailer's currency.
- If the price cannot be specified, this field should be blank.
✅ Correct:
- 1123.45
- 3,40
❌ Wrong:
- 1 123.45 €
- 100 PLN
- unknown
vatPercents
- Percentage of VAT.
- Optional field.
- Represented by a non-negative decimal number.
- Only digits, and a dot or a comma as decimal separator allowed.
✅ Correct:
- 21.50
- 20
❌ Wrong:
- 21 %
- 20%
refundableDepositPrice
- Amount of refundable deposit.
- Optional field.
- Represented by a non-negative decimal number.
- Only digits, and a dot or a comma as decimal separator allowed.
- Currency is specified between parentheses in the column name in compliance with ISO 4217.
- Refundable deposit of an item cannot be listed as a separated item on a separated row, but directly on the row that the item is related.
- Whenever possible, the currency should be the one that the supplier carries out pricing, i.e. without conversion into retailer's currency.
- If product's deposit price is not set, this field should be blank or zero.
✅ Correct:
- 1123.45
- 3,40
❌ Wrong:
- 1 123.45 €
- 100 PLN
- no deposit
refundableDepositCode
- Identifier of refundable deposit
- Conditional required field.
- Only ASCII characters allowed.
warranty
- Length of warranty period.
- Optional field.
- Represented by an integer, space and time unit, or one of special values.
- Allowed time unit day, month, year.
- Special value lifetime – lifetime warranty.
- If the product doesn't come with a warranty, this field must be blank.
✅ Correct:
- 14 days
- 12 months
- 1 year
- lifetime
❌ Wrong:
- no warranty
- no
- 2 roky
- 24
stockAvailableCount(Nuremberg)
- Stock status (number of available pieces) at warehouse.
- Required field.
- Represented by a non-negative integer as lower bound of stock.
- Name of warehouse is specified between parentheses in the column name.
- If the supplier has multiple warehouses, each column represents each warehouse.
✅ Correct:
- 6
- >20
❌ Wrong:
- 100 pcs
- notAvailable
- in 2 days
- 5.00 ks
- -
- 2–5
- <10
- 6+
page.htmlDescription
- Long description of product
- HTML string with allowed tags: p, b, strong, i, em, s, del, ins, small, sub, sup, ul, ol, li, blockquote, q, code, pre, h1, h2, h3, h4, br, hr, wbr, img[src|alt], a[href], hot
- Other HTML tags will be removed
page.shortDescription
- Short description of product
- HTML string with allowed tags: p, b, strong, i, em, s, del, ins, small, sub, sup, ul, ol, li, blockquote, q, code, pre, h1, h2, h3, h4, br, hr, wbr, img[src|alt], a[href], hot
- Other HTML tags will be removed
parameters.*
- Parameter column
- Replace * by codename of the parameter
- Multiple columns with unique parameter codename allowed
- Value is any string
Example of column names:
- parameters.weight
- parameters.length