Application Fitments

The Application Fitments associates products with vehicles. It also adds any new vehicles it encounters.


This format is almost the same as the Vehicles List format. In fact is just an extension to the Vehicles List import format. The difference is you may list each vehicle more than once for different products.

The following rules should be noted
  • Each row requires a 'sku' value. If the value in this row does not match an existing product that row will be skipped.
  • A column for each level in your hierarchy (make,model). You may seperate Makes or Models by comma if you are adding the same years.
  • A column 'year', or in numeric mode 2 columns called 'year_start' and 'year_end'.

Tip: Vehicles can and often will span multiple rows. For example you may define years 1990-1995, and then on the next row you would do more year(s).. eg. 2000-2005.



Universal Product

You may add a 'universal' column to your spreadsheet. Place a "1" in this column for any products you want to be universal product (show up for any vehicle).





Pitfalls
  1. If you use "special characters" you must use UTF-8 file encoding
  2. MAC newlines are not supported

Enumeration

You may seperate SKUs by comma if you are adding the same fitments for more than one sku. This is in addition to being able to enumerate the Year/Make/Model themselves. Separating by comma will cause the SKU to be "multplied out" (power set) with combinations already derived on the Vehicles List import.

Example #1 - Comma Enumeration:

Example #2 - Comma Enumeration In Multiple Fields (Power Set):

Wildcards

You may use wild cards within your SKU or Make/Model/Year. For example if you want to add a bunch of Ford pickup trucks (F-150, F-250, F-350, etc..) You may use the wild card character '*' within a model name, for example 'F-*' would match 'F-150', or 'F-150 *' would match 'F-150 Super Duty' but not 'F-150' . The wild card character {{all}} can be used an alias to '*' to match all applicable values. Wild cards may be used in one or more levels (Make,Model,Year) and/or the SKU. All possible combinations will be derived. Wild cards can be combined with Enumeration for maximum flexibility.

Example #1 - {{all}} wild card:

In example #1, all engines for Ford F-150 for each applicable year will be added as a fitment. More concretely, if you had "Ford/F-150/1.6L" and "Ford/F-150/1.8L" in your vehicles list, both vehicles will be added as fitments for this product. In order to make the operation a "safe operation", if there were no such vehicle '2000/Ford/F-150/1.8L', it would not be added, even if 1.8L were a valid F-150 engine for other years. In other words wildcards behave as a filter that filters against the vehicles list you've previously set up. It will not behave as a "power set" (add newly implied vehicles) ala the 'enumeration' feature. Thanks to this filtering & matching behavior of the wildcards, it can be guaranteed that engines do not end up associated to the wrong years (aka it is a "safe operation").


Example #2 - '*' within a model name:

Example #3 - '*' within a model name (more specific):

Example #4 - Wild cards & Enumeration Combined, multiple fields:

Logging

Logging will automatically happen when using the web interface. This will be written to '/var/vaf-import.log'. It will be logged when an import starts & stops, and when errors are encountered in your data quality that cause skipped rows.

Command Line Interface (CLI) / Cron

Navigate to Elite/Vafimporter/cron. The file to be imported will be read from product-fitments-import.csv. Export files will be named as product-fitments-export.csv

Import

To import, use this command:
php product-fitments-import.csv.php
Or as a background process:
nohup php product-fitments-import.csv.php > error_log &

Export

To export, use this command
php product-fitments-export.csv.php
Or as a background process:
nohup php product-fitments-export.csv.php > product-fitments.csv &

Logging

Import logging will automatically be written to product-fitments-import.log, errors and notices will be logged.

Notes

If you can't import because of your webhost, you can split the files on the linux command line, here is an example: http://stackoverflow.com/a/1411856/2279347