Difference between revisions of "ITrack/Enterprise/Imports"
(→Fields) |
|||
(11 intermediate revisions by the same user not shown) | |||
Line 81: | Line 81: | ||
===Downloads=== | ===Downloads=== | ||
[[ | [[Media:inventory_types.csv|Inventory types spreadsheet (empty)]] | ||
[[ | [[Media:inventory_types-Example.csv|Inventory types spreadsheet (w/ examples)]] | ||
===Queries=== | ===Queries=== | ||
Line 120: | Line 120: | ||
===Downloads=== | ===Downloads=== | ||
[[ | [[Media:inventory_questions.csv|Inventory questions spreadsheet (empty)]] | ||
[[ | [[Media:inventory_questions-Example.csv|Inventory questions spreadsheet (w/ examples)]] | ||
===Queries=== | ===Queries=== | ||
Line 166: | Line 166: | ||
===Downloads=== | ===Downloads=== | ||
[[ | [[Media:manufacturers.csv|Manufacturer spreadsheet (empty)]] | ||
[[ | [[Media:manufacturers-Example.csv|Manufacturer spreadsheet (w/ examples)]] | ||
===Queries=== | ===Queries=== | ||
Line 248: | Line 248: | ||
===Downloads=== | ===Downloads=== | ||
[[ | [[Media:models.csv|Manufacturer spreadsheet (empty)]] | ||
[[ | [[Media:models-Example.csv|Manufacturer spreadsheet (w/examples)]] | ||
===Queries=== | ===Queries=== | ||
Line 302: | Line 302: | ||
===Downloads=== | ===Downloads=== | ||
[[ | [[Media:vehicle_models.csv|Models spreadsheet (empty)]] | ||
[[ | [[Media:vehicle_models-Example.csv|Models spreadsheet (w/examples)]] | ||
===Queries=== | ===Queries=== | ||
Line 585: | Line 585: | ||
===Downloads=== | ===Downloads=== | ||
[[ | [[Media:vehicles.csv|Vehicles spreadsheet (empty)]] | ||
[[ | [[Media:vehicles-Example.csv|Vehicles spreadsheet (w/examples)]] | ||
===Queries=== | ===Queries=== | ||
Line 636: | Line 636: | ||
===Downloads=== | ===Downloads=== | ||
[[ | [[Media:vehicle_answers.csv|Vehicle answers spreadsheet (empty)]] | ||
[[ | [[Media:vehicle_answers-Example.csv|Vehicle answers spreadsheet (w/examples)]] | ||
===Queries=== | ===Queries=== | ||
Line 651: | Line 651: | ||
==Inventory== | ==Inventory== | ||
The inventory file allows someone to bring in used and new inventory records. If they are available, the (optional) inventory type, manufacturer, model, and vehicle model imports should be run first. The inventory import will create entries in | The inventory file allows someone to bring in used and new inventory records. If they are available, the (optional) inventory type, manufacturer, model, and vehicle model imports should be run first. The inventory import will create entries in the inventory type, manufacturer, and model tables for any rows that don't match anything previously imported. | ||
===Fields=== | ===Fields=== | ||
{| border="2" | |||
|- | |||
! Field name | |||
! Type | |||
! Restriction | |||
! Required | |||
! Explanation | |||
! Example Value | |||
|- | |||
| store_id | |||
| integer | |||
| | |||
| Yes | |||
| The store number this part exists at. If the part is stocked at multiple stores, a separate row should be created for each. | |||
| 1 | |||
|- | |||
| sku_identifier | |||
| string | |||
| 50 | |||
| Yes | |||
| The 'name' of this item. This name/id is used as the internal part number in the system, as well as customer-facing documents and tag printouts. It is preferable that this value be unique per store. | |||
| ALN AT540-CORE | |||
|- | |||
| vehicle_stocknumber | |||
| string | |||
| 50 | |||
| No | |||
| The stock # of the associated vehicle record (if any). If this vehicle is not found, it will not be created as part of the import. Therefore anything in this field should have already been created as part of the vehicle import, or the part will not be associated with a vehicle and its corresponding profitability and cost pool. | |||
| TESTVEHICLE | |||
|- | |||
| description | |||
| string | |||
| | |||
| No | |||
| A long-form description of the inventory record. Note: the contents of this field are public in internet listings and on customer-facing documents. | |||
| Rebuilt transmission, certified rebuild. | |||
|- | |||
| notes | |||
| string | |||
| | |||
| No | |||
| A long-form internal description/notes for the inventory record. This information is internal to the system and will not be displayed in public contexts. | |||
| Marks along the side, consider repainting | |||
|- | |||
| accounting_category | |||
| string | |||
| 50 | |||
| Yes | |||
| The name of a general ledger accounting category that controls the accounting this part affects. All inventory with the same accounting category will hit the same sales/inventory/CoGS/etc accounts for the same context (sale, rebuild, purchase, etc). This field can be left empty if accounting will be disabled in the system. | |||
| Used Parts | |||
|- | |||
| status | |||
| choice | |||
| A,H,S,C,D,B | |||
| Yes | |||
| A short status of the vehicle. Descriptions follow: | |||
* A - Available: default for a vehicle that is in stock for sale or if any cost remains | |||
* S - Sold: the vehicle has been sold on a document or written down on an internal document, consuming any remaining cost. | |||
* C - Crushed: the vehicle has been marked as crushed, and is no longer available. Any remaining inventory constitute all remaining vehicle cost distributions. | |||
* D - Deleted: the vehicle was a mistake and has been marked as deleted. A vehicle in this state should not have any remaining cost. | |||
* B - Bid: a vehicle that has been bid on but has not yet been won. Vehicles of this type do not show up in normal searches. | |||
| A | |||
|- | |||
| quantity_on_hand | |||
| decimal | |||
| | |||
| Yes | |||
| The amount of stock that is currently on hand. This includes inventory that is on hold but has not yet been sold or consumed. | |||
| 10.000000 | |||
|- | |||
| inventory_type_name | |||
| string | |||
| 100 | |||
| Yes | |||
| Name of the inventory type for this SKU. If the user does not wish to use specific inventory types for replenishable (aftermarket) inventory, use a blanket type like "Miscellaneous Parts" | |||
| Miscellaneous Parts | |||
|- | |||
| category | |||
| string | |||
| 50 | |||
| No | |||
| What inventory category this SKU belongs to. This can be used to categorize the item on documents and internet listings. | |||
| USED | |||
|- | |||
| condition | |||
| string | |||
| 15 | |||
| No | |||
| A short description of the condition of the item. | |||
| GOOD RUNNER | |||
|- | |||
| oem_number | |||
| string | |||
| 30 | |||
| No | |||
| A number from the original equipment manufacturer which can be used to lookup the item. If there are several numbers/ids that can be used to find this item, use the inventory_lookup import to add more UPCs or alternate part lookups of other types. | |||
| | |||
|- | |||
| manufacturer | |||
| string | |||
| 50 | |||
| No | |||
| The name of company that produces this item (not necessarily the company you purchase it from). For some part types, items are generally known by their application, not their manufacturer. In those cases, leave this blank and simply fill out the assembly_manufacturer instead. For major assemblies (engine/transmission/etc) where items are known by the OEM, this will often be the same as the assembly_manufacturer. | |||
| Allison | |||
|- | |||
| model | |||
| string | |||
| 50 | |||
| No | |||
| The model # that identifies this item to the company listed in the manufacturer above. For some part types, items are generally known by their application, not their manufacturer. In those cases, leave this blank and simply fill out the assembly_model instead. For major assemblies (engine/transmission/etc) where items are known by the OEM, this will often be the same as the assembly_model. | |||
| AT540 | |||
|- | |||
| assembly_manufacturer | |||
| string | |||
| 50 | |||
| No | |||
| This is the manufacturer that is used to search this item by what it applies to/fits in. This is generally the manufacturer a part is 'known by'. For major assemblies (engine/transmission), this is generally the same as the actual manufacturer. For assembly components, it will generally be the manufacturer of the assembly this part fits. So a gasket kit may be known by the manufacturer of the engine it fits. | |||
| Allison | |||
|- | |||
| assembly_model | |||
| string | |||
| 50 | |||
| No | |||
| This is the modelthat is used to search this item by what it applies to/fits in. This is generally the model a part is 'known by'. For major assemblies (engine/transmission), this is generally the same as the actual model. For assembly components, it will generally be the model of the assembly this part fits. So a gasket kit may be known by the model of the engine it fits. | |||
| AT540 | |||
|- | |||
| inventory_type_data_1 | |||
| string | |||
| 50 | |||
| No | |||
| Data that corresponds to the first label on this SKU's part type (see inventory_type_label_1 in the inventory_type import) | |||
| 230HP | |||
|- | |||
| inventory_type_data_2 | |||
| string | |||
| 50 | |||
| No | |||
| Data that corresponds to the first label on this SKU's part type (see inventory_type_label_2 in the inventory_type import) | |||
| Yes | |||
|- | |||
| inventory_type_data_3 | |||
| string | |||
| 50 | |||
| No | |||
| Data that corresponds to the first label on this SKU's part type (see inventory_type_label_3 in the inventory_type import) | |||
| 123456 | |||
|- | |||
| inventory_type_data_4 | |||
| string | |||
| 50 | |||
| No | |||
| Data that corresponds to the first label on this SKU's part type (see inventory_type_label_4 in the inventory_type import) | |||
| 40PSI | |||
|- | |||
| deplete | |||
| boolean | |||
| | |||
| Yes | |||
| Whether this item can be depleted. This defaults to True. If set to False, the quantity_on_hand, average_cost, and average_core_cost of the item will be ignored and selling or consuming the item will not affect the item. Generally this is only False for SKUs that represent fees or items with an arbitrary stock. | |||
| True | |||
|- | |||
| public | |||
| boolean | |||
| | |||
| Yes | |||
| Whether this item should be shown on any website or online integrations. | |||
| True | |||
|- | |||
| taxable | |||
| boolean | |||
| | |||
| Yes | |||
| Whether this item should (by default) be marked as taxable on any sales documents. | |||
| True | |||
|- | |||
| serialized | |||
| boolean | |||
| | |||
| Yes | |||
| Set to True if this item tracks a serial # or other individual # for every item quantity_on_hand. If serialized is True, make sure to specify the serial #'s as part of the import into inventory_locations. | |||
| False | |||
|- | |||
| average_cost | |||
| decimal | |||
| | |||
| Yes | |||
| This should represent a capitalized cost 'per quantity' of the items in inventory. After import, average_cost is tracked based on expenses in the system (POs, WOs, etc) and cannot be edited directly by the user. | |||
| 325.50 | |||
|- | |||
| list_price | |||
| decimal | |||
| | |||
| No | |||
| The list price of the item. Used in some online listings as well as customers who pay some markup of list price on inventory. | |||
| 2250.50 | |||
|- | |||
| retail_price | |||
| decimal | |||
| | |||
| No | |||
| The retail price of the item. Used in some online listings as well as the default price customers pay. | |||
| 2250.50 | |||
|- | |||
| retail_core_charge | |||
| decimal | |||
| | |||
| No | |||
| The retail core charge on this item. This only applies if this item has core charges on customer documents. Used in some online listings as well as the default core charge customers pay. | |||
| 250.00 | |||
|- | |||
| wholesale_price | |||
| decimal | |||
| | |||
| No | |||
| The wholesale price of the item. Generally a lower charge than the retail price. This will be used for customers who pay a markup of wholesale. | |||
| 1800.00 | |||
|- | |||
| wholesale_core_charge | |||
| decimal | |||
| | |||
| No | |||
| The wholesale core charge for the item. Generally lower than the retail core charge. This will be used for customers who pay a markup of wholesale. This only applies if this item has core charges on customer documents. | |||
| 200.00 | |||
|- | |||
| jobber_price | |||
| decimal | |||
| | |||
| No | |||
| Generally a lower charge than the wholesale price. This will be used for customers who pay a markup of jobber. | |||
| 1700.00 | |||
|- | |||
| jobber_core_charge | |||
| decimal | |||
| | |||
| No | |||
| Generally lower than the wholesale core charge. This will be used for customers who pay a markup of jobber. This only applies if this item has core charges on customer documents. | |||
| 185.00 | |||
|- | |||
| distributor_price | |||
| decimal | |||
| | |||
| No | |||
| Generally a lower charge than the jobber price. This will be used for customers who pay a markup of distributor. | |||
| 1700.00 | |||
|- | |||
| distributor_core_charge | |||
| decimal | |||
| | |||
| No | |||
| Generally lower than the jobber core charge. This will be used for customers who pay a markup of distributor. This only applies if this item has core charges on customer documents. | |||
| 185.00 | |||
|- | |||
| interchange_group | |||
| string | |||
| 20 | |||
| No | |||
| A value that represents an interchangeable 'group' of items. All items that are at least partially interchangeable for a particular year/make/model or year/manufacturer/model application should have the same value entered. | |||
| 1101 | |||
|- | |||
| sub_interchange_group | |||
| string | |||
| 5 | |||
| No | |||
| An optional value that represents a sub-group of the specified interchange_group. If two items with the same interchange_group have a different sub_interchange_group, that means the items are partially interchangeable. Generally this means the item must be somehow modified to apply. | |||
| B | |||
|- | |||
| weight | |||
| decimal | |||
| | |||
| No | |||
| The average shipping weight of an example of this SKU. | |||
| 375.000000 | |||
|- | |||
| shipping_width | |||
| decimal | |||
| | |||
| No | |||
| The average width of the item when shipped. | |||
| 36.00 | |||
|- | |||
| shipping_length | |||
| decimal | |||
| | |||
| No | |||
| The average length of the item when shipped. | |||
| 42.00 | |||
|- | |||
| shipping_height | |||
| decimal | |||
| | |||
| No | |||
| The average height of the item when shipped. | |||
| 30.00 | |||
|- | |||
| replenishable | |||
| boolean | |||
| | |||
| Yes | |||
| Whether this SKU represents an item that is replenishable. Such items will keep a status of Available if quantity drops to 0. Non-replenishable items will gain a status of Sold if they reach 0 quantity_on_hand. | |||
| True | |||
|- | |||
| minimum_stock_level | |||
| decimal | |||
| | |||
| No | |||
| (replenishable inventory only) if the quantity drops below this value, the system will suggest an order to bring stock back up to maximum_stock_level. | |||
| 5.000000 | |||
|- | |||
| maximum_stock_level | |||
| decimal | |||
| | |||
| No | |||
| (replenishable inventory only) if the quantity drops below minimum_stock_level value, the system will suggest an order to bring stock back up to this quantity. | |||
| 20.000000 | |||
|- | |||
| default_purchase_vendor | |||
| string | |||
| 50 | |||
| No | |||
| (replenishable inventory only) the company name of the vendor that stock is ordered from by default. | |||
| All American Truck Parts | |||
|- | |||
| vendor_part_number | |||
| string | |||
| 40 | |||
| No | |||
| (replenishable inventory only) this is the identifier used on purchase orders that identifies purchases of this item to the default purchase vendor. | |||
| AA AT540 | |||
|- | |||
| core_class | |||
| string | |||
| 10 | |||
| No | |||
| (replenishable inventory only) parts that share a core_class are interchangeable when being returned to the purchase vendor in exchange for a core charge. | |||
| | |||
|- | |||
| unit_of_measurement | |||
| string | |||
| 10 | |||
| No | |||
| (replenishable inventory only) denotes what 1 quantity of this item represents (foot, EA, inch, etc) | |||
| EA | |||
|- | |||
| vendor_product_code | |||
| string | |||
| 50 | |||
| No | |||
| (replenishable inventory only) | |||
| | |||
|- | |||
| popularity_code | |||
| string | |||
| 10 | |||
| No | |||
| (replenishable inventory only) the popularity class of this item. For example: A/B/C popularity class for items that are fast or slow moving. | |||
| A | |||
|- | |||
| vendor_popularity_code | |||
| string | |||
| 10 | |||
| No | |||
| (replenishable inventory only) the popularity class of this item for the default purchase vendor. | |||
| | |||
|- | |||
| seasonal | |||
| boolean | |||
| | |||
| No | |||
| (replenishable inventory only) whether this item's usage pattern follows a yearly seasonal pattern. | |||
| False | |||
|- | |||
| buy_package | |||
| integer | |||
| | |||
| No | |||
| (replenishable inventory only) this represents (in terms of the company's stock quantity) that the vendor sells in groups of. For example, if the user stocks inches of tubing, but the vendor sells in 5 foot increments, buy_package would be 60. | |||
| | |||
|- | |||
| sell_package | |||
| integer | |||
| | |||
| No | |||
| (replenishable inventory only) this represents (in terms of the company's stock quantity) that the company sells in groups of. For example, if the user stocks inches of tubing, but sells in 1 foot increments, sell_package would be 12. | |||
| | |||
|- | |||
| vendor_sells_in_packs | |||
| boolean | |||
| | |||
| No | |||
| (replenishable inventory only) if True, vendor facing documents will represent purchase quantity in terms of the buy_package. For example, if the user stocks inches of tubing, and the vendor sells in 5 foot increments that it considers "1 spool", a purchase order printout of 120 inches would show an order of 2 (spools). | |||
| False | |||
|- | |||
| stocking_type | |||
| choice | |||
| Special Order, Stocked, Obsolete | |||
| No | |||
| (replenishable inventory only) dictates whether the item is actively stocked. Items that are Special Order will be part of suggested orders if they are on any hold orders. Obsolete items will not show up to be ordered. | |||
| Special Order | |||
|- | |||
| stocking_method | |||
| choice | |||
| None, Min/Max, History | |||
| No | |||
| (replenishable inventory only) the stocking methodology. Min/Max means order up to max when quantity is below min. History means use historical ordering fields to decide how many to order. | |||
| Min/Max | |||
|- | |||
| stocking_days | |||
| integer | |||
| | |||
| No | |||
| (replenishable inventory only) the average number of days between ordering this item and when it is received. This will be used as part of historical ordering suggestions. | |||
| 7 | |||
|- | |||
| safety_stock_percent | |||
| decimal | |||
| | |||
| No | |||
| (replenishable inventory only) As part of historical ordering suggestions, this is an extra % of stocking levels to order as a 'safety net' | |||
| 10.00 | |||
|- | |||
| purchase_cost | |||
| decimal | |||
| | |||
| No | |||
| For replenishable inventory: this is the expense required to purchase a single unit of the SKU from the default purchase vendor. | |||
For parts off of a vehicle: this is a statically allocated section of the vehicle's cost pool to allocate to this part. | |||
For all other parts: a general cost valuation of the item. This will be used for customers who pay a markup of cost. | |||
| 1400.00 | |||
|- | |||
| core_purchase_cost | |||
| decimal | |||
| | |||
| No | |||
| (replenishable inventory only) this represents a value that the default purchase vendor will charge in the form of a 'core charge' when ordered. | |||
| 100.00 | |||
|} | |||
===Downloads=== | ===Downloads=== | ||
[[ | [[Media:inventory.csv|Inventory spreadsheet (empty)]] | ||
[[ | [[Media:inventory-Example.csv|Inventory spreadsheet (w/examples)]] | ||
===Queries=== | ===Queries=== | ||
Line 679: | Line 1,118: | ||
==Inventory Lookups== | ==Inventory Lookups== | ||
Importing inventory lookups allows the user to specify alternate numbers or identifiers that should link to specified items. Lookups can be UPCs (used for scanning/entering packaging), alternate inventory record (used when one SKU replaces another), alternate part # (any kind of string that can be used to find the item in search), Supercession (an alternate vendor part # that can be used to find this part; used when a vendor or manufacturer changes identifiers). This import is optional. | |||
===Fields=== | ===Fields=== | ||
{| border="2" | |||
|- | |||
! Field name | |||
! Type | |||
! Restriction | |||
! Required | |||
! Explanation | |||
! Example Value | |||
|- | |||
| sku_identifier | |||
| string | |||
| 50 | |||
| Yes | |||
| The 'name' of an item in inventory. This lookup record applies to that item. | |||
| ALN AT540 | |||
|- | |||
| sku_lookup | |||
| string | |||
| 30 | |||
| Yes | |||
| Depending on the relationship_type, this represents the value that links to the record. | |||
| ALN AT540-B | |||
|- | |||
| other_sku_identifier | |||
| string | |||
| 50 | |||
| No | |||
| (Optional) The sku_identifier of another inventory record. If the relationship_type is Alternate Inventory Record, this will be the alternate SKU record that is being linked to. In other cases, it should be omitted. | |||
| ALN AT545 | |||
|- | |||
| package_quantity | |||
| integer | |||
| | |||
| Yes | |||
| A quantity multiplier to be applied when scanning a barcode or entering this lookup in the mobile warehouse management software. Useful in situations where certain vendor barcodes on packaging represent a package of multiple quantity. By default, this will generally be 1. | |||
| 1 | |||
|- | |||
| relationship_type | |||
| choice | |||
| UPC, Alternate Inventory Record, Alternate Part #, Supercession | |||
| Yes | |||
| Represents the nature of this record to its linked item/SKU. | |||
| UPC | |||
|- | |||
| comment | |||
| string | |||
| | |||
| No | |||
| A long-form user description, explaining the relationship | |||
| This record replaced the old item when the vendor changed part #'s back in 2016 | |||
|} | |||
===Downloads=== | ===Downloads=== | ||
[[ | [[Media:inventory_lookups.csv|Inventory lookups spreadsheet (empty)]] | ||
[[ | [[Media:inventory_lookups-Example.csv|Inventory lookups spreadsheet (w/examples)]] | ||
===Queries=== | ===Queries=== | ||
Line 692: | Line 1,185: | ||
==Inventory Locations== | ==Inventory Locations== | ||
This import will specify where the items that were imported as part of the inventory import are located at the facility. There should be records enough to account for the sum total of each inventory record's quantity_on_hand. If the rows imported for a particular SKU do not add up to the quantity on hand that was imported, the remaining difference will be put at a location of Variance and marked as lost for the next count. | |||
For serialized items, there should be a row for every available SKU associated with the item, along with the location the item with that serial # is located at. Serialized rows should always have a quantity of 1. | |||
===Fields=== | ===Fields=== | ||
{| border="2" | |||
|- | |||
! Field name | |||
! Type | |||
! Restriction | |||
! Required | |||
! Explanation | |||
! Example Value | |||
|- | |||
| store_id | |||
| integer | |||
| | |||
| Yes | |||
| The store number of the inventory record that this location corresponds to. | |||
| 1 | |||
|- | |||
| sku_identifier | |||
| string | |||
| 50 | |||
| Yes | |||
| The 'name' of the inventory item this applies to. | |||
| ALN AT540-CORE | |||
|- | |||
| location | |||
| string | |||
| 50 | |||
| Yes | |||
| The location the item is located at. This location will be created as part of import if it does not exist at the given store. | |||
| W1-R1-L2-B6 | |||
|- | |||
| serialnumber | |||
| string | |||
| 25 | |||
| No | |||
| The unique serial #/item # that represents a single quantity of the associated inventory record. If the associated SKU is serialized, a number of rows should exist with a valid serialnumber value equal to the quantity_on_hand of that record. | |||
| 1-439874 | |||
|- | |||
| quantity | |||
| decimal | |||
| | |||
| Yes | |||
| The quantity of the associated item located at the given location. For serialized records, this should be 1. | |||
| 1 | |||
|} | |||
===Downloads=== | ===Downloads=== | ||
[[ | [[Media:inventory_locations.csv|Inventory locations spreadsheet (empty)]] | ||
[[ | [[Media:inventory_locations-Example.csv|Inventory locations spreadsheet (w/examples)]] | ||
===Queries=== | ===Queries=== | ||
Line 707: | Line 1,250: | ||
==Inventory Answers (Additional Attributes)== | ==Inventory Answers (Additional Attributes)== | ||
This table represents optional 'answers' for the 'questions' imported earlier. Each inventory record can have up to one answer for each question that is registered for the inventory type specified as part of the inventory import. An inventory record can omit answers for any questions that do not apply to that particular inventory item. | |||
===Fields=== | ===Fields=== | ||
{| border="2" | |||
|- | |||
! Field name | |||
! Type | |||
! Restriction | |||
! Required | |||
! Explanation | |||
! Example Value | |||
|- | |||
| sku_identifier | |||
| string | |||
| 25 | |||
| Yes | |||
| A unique name that identifies this vehicle in the system | |||
| ALN AT540 | |||
|- | |||
| question_text | |||
| string | |||
| 50 | |||
| Yes | |||
| The text of the question as previously imported in the inventory question import type. If it is not found, it will be added to the list of registered questions. | |||
| Mileage | |||
|- | |||
| answer_text | |||
| string | |||
| | |||
| Yes | |||
| The text of the answer for this specific vehicle. This field has an unlimited length | |||
| 25750 | |||
|} | |||
===Downloads=== | ===Downloads=== | ||
[[ | [[Media:inventory_answers.csv|Inventory answers spreadsheet (empty)]] | ||
[[ | [[Media:inventory_answers-Example.csv|Inventory answers spreadsheet (w/examples)]] | ||
===Queries=== | ===Queries=== |
Latest revision as of 17:04, 7 December 2018
This page describes the structure and content of the files that ITrack Enterprise can accept as input for importing data into the system. Some of these files are optional and can be omitted. Each import takes the form of a spreadsheet (.csv file) that must be filled out in a particular format before it can be imported. Each import's purpose is described below, along with a list of all columns in the spreadsheet, along with their data types, meaning, and requirements.
Field Data types
In the tables below, each field will have a data type. Import rows must have a value that matches this data type (or be blank if the field is not required). Below we describe each of the data types.
- integer: a numeric value
- decimal: a fractional numeric value, such as a currency value. Format should omit any currency symbols. Example: 519.23
- string: any text is allowed, up to the specified length in the restriction column
- choice: specific text options are allowed, which are specified in the restriction column
- boolean: either True or False
- date: a date in ISO standard (YYYY-MM-DD). Example: 2018-12-30
Spreadsheet Downloads
In each import file section, several downloads are available. All import files are .csv files (comma separated values). These can be edited in Excel, google spreadsheets, and exported from most database systems. Each section should have an empty import file, allowing for someone to manually submit data. In some imports, an example csv is specified with test data. Test data is not ensured to make sense for all domains, and please disregard the arbitrary nature of some of the test data.
Import File Descriptions
Below, find descriptions of each type of import file. Each table has detailed field descriptions, a .csv file download link (a spreadsheet that can be filled out with import data), and a MySQL query for internal use that documents generating import files from ITrack Enterprise schema.
Inventory Types
Inventory types represent the full list of types of inventory that can be entered in the system. A valid inventory type is required for every part, vehicle, or other inventory unit. However, this import is optional, as inventory types will be created automatically as part of the inventory or vehicle import, as needed.
Fields
Field name | Type | Restriction | Required | Explanation | Example Value |
---|---|---|---|---|---|
inventory_type_name | string | 50 | Yes | A unique name describing the inventory type | Crankshaft |
assembly_type_name | string | 50 | No | A 'parent' inventory type. This is optional, but if it is filled out, it represents that this inventory type comes from an assembly of the specified part type | Engine Assembly |
inventory_type_label_1 | string | 20 | No | An extra question/option for all inventory records of this type. This is one of 4 field labels that can be specified as part of the inventory import. | Horsepower |
inventory_type_label_2 | string | 20 | No | An extra question/option for all inventory records of this type. This is one of 4 field labels that can be specified as part of the inventory import. | Jake brakes |
inventory_type_label_3 | string | 20 | No | An extra question/option for all inventory records of this type. This is one of 4 field labels that can be specified as part of the inventory import. | CPL/ARR# |
inventory_type_label_4 | string | 20 | No | An extra question/option for all inventory records of this type. This is one of 4 field labels that can be specified as part of the inventory import. | Oil Pressure |
vehicle_inventory_type | boolean | Yes | If this is true, this inventory type applies to vehicles, otherwise it applies to part inventory. | False |
Downloads
Inventory types spreadsheet (empty)
Inventory types spreadsheet (w/ examples)
Queries
# Inventory types (optional)
SELECT inventorytype.name AS inventory_type_name, parenttype.name AS assembly_type_name, inventorytype.typelabel1 AS inventory_type_label_1, inventorytype.typelabel2 AS inventory_type_label_2, inventorytype.typelabel3 AS inventory_type_label_3, inventorytype.typelabel4 AS inventory_type_label_4, inventorytype.vehicleunit AS vehicle_inventory_type FROM inventorytype LEFT JOIN inventorytype AS parenttype ON parenttype.inventorytypeid = inventorytype.typesetid AND inventorytype.inventorytypeid != parenttype.inventorytypeid;
Inventory Questions
Inventory questions represent additional attributes that can be filled out on every inventory record. Each inventory type can have any number of additional questions.
Fields
Field name | Type | Restriction | Required | Explanation | Example Value |
---|---|---|---|---|---|
inventory_type_name | string | 50 | Yes | A unique name describing the inventory type (see the inventory type import) | Transmission/Transaxle Assembly |
question_text | string | 50 | Yes | The text of an extra attribute for all inventory records of this type. | Gear ratio |
Downloads
Inventory questions spreadsheet (empty)
Inventory questions spreadsheet (w/ examples)
Queries
# Inventory Q&A
SELECT inventorytype.name AS inventory_type_name, `option` AS question_text FROM inventoryoption JOIN inventorytype USING (inventorytypeid) WHERE inventorytypeid = 4350;
Part Manufacturers
This is an optional import that allows the user to specify a list of valid manufacturers for all parts inventory. Manufacturers are not inventory type specific, but part models are. If this import is omitted, manufacturers are created automatically as inventory is imported.
Fields
Field name | Type | Restriction | Required | Explanation | Example Value |
---|---|---|---|---|---|
manufacturer_name | string | 50 | Yes | A unique name of the manufacturer | Allison |
short_name | string | 10 | Yes | A unique code/short name for this manufacturer, sometimes used as part of a default sku_identifier in inventory. If the importer doesn't care about this feature, they can simply assign a unique number or the first couple characters of the manufacturer name (such as the first 3 characters). | ALN |
default_accounting_category | string | 50 | No | The name of a GL category to assign (by default) to any inventory records created with this manufacturer. | Used Inventory |
Downloads
Manufacturer spreadsheet (empty)
Manufacturer spreadsheet (w/ examples)
Queries
# Manufacturers (optional)
SELECT manufacturer.name AS manufacturer_name, manufacturer.code AS short_name, glcategory.name AS default_accounting_category FROM manufacturer LEFT JOIN glcategory USING (glcategoryid) WHERE manufacturer.name IN ('ALLISON', 'CHEVROLET');
Part Models
This is an optional import that allows the user to specify a list of valid models for all parts inventory. Each part model is specific to an inventory type and a part manufacturer; they will be created if they don't exist. If this import is omitted, models will be created as inventory is imported.
Fields
Field name | Type | Restriction | Required | Explanation | Example Value |
---|---|---|---|---|---|
manufacturer_name | string | 50 | Yes | The name of a manufacturer that this model is produced by | Allison |
inventory_type_name | string | 50 | Yes | The name of the inventory type that this model represents | Transmission/Transaxle Assembly |
model_name | string | 50 | Yes | The name of a part model. It must be unique per inventory type/manufacturer, ignoring any special characters (dash, slash, space, period, hyphen, etc). | AT540 |
first_year | integer | No | The first year the model will apply to | 2000 | |
last_year | integer | No | The last year the model will apply to | 2018 | |
weight | decimal | No | Default shipping weight of inventory of this model | 250.0 | |
weight_unit | choice | 'mg','g','kg','N','oz','lb','ton' | No | The unit of the weight | lb |
default_category | string | 50 | No | An inventory category to be assigned (by default) to newly created inventory records with this model. | Used |
Downloads
Manufacturer spreadsheet (empty)
Manufacturer spreadsheet (w/examples)
Queries
# Models (optional)
SELECT manufacturer.name AS manufacturer_name, inventorytype.name AS inventory_type_name, model.name, firstyear AS first_year, lastyear AS last_year, weight, weightunit AS weight_unit, defaultcategory AS default_category FROM model LEFT JOIN manufacturer USING (manufacturerid) LEFT JOIN inventorytype USING (inventorytypeid) WHERE manufacturer.name IN ('ALLISON', 'CHEVROLET') AND inventorytypeid != 9990;
Vehicle Makes/Models
This is an optional import that allows the user to specify a list of valid makes and models for all vehicle inventory. If this import is omitted, vehicle models will automatically be created based on the vehicle import.
Fields
Field name | Type | Restriction | Required | Explanation | Example Value |
---|---|---|---|---|---|
make | string | 50 | Yes | The name of a vehicle make | PETERBILT |
vehicle_model | string | 50 | Yes | The name of the vehicle model | 567 |
first_year | integer | No | The first year the model was produced | 2000 | |
last_year | integer | No | The last year the model was produced | 2010 |
Downloads
Models spreadsheet (w/examples)
Queries
# Vehicle Models (optional)
SELECT make AS make_name, vehiclemodel.model AS model_name, IF(firstyear = 0, '', firstyear) AS first_year, IF(lastyear = 9999, '', lastyear) AS last_year FROM vehiclemodel WHERE make = 'International';
Vehicles
This import is required to bring any vehicles into the system. Each vehicle record should have its total vehicle cost set equal to the total expenses associated with that vehicle and any of its constituent inventory records. The total vehicle CoGS (cost of goods sold) should be the sum of all costs that have been sold out of the system previously (such as previous component part sales). The remaining cost (total vehicle cost minus total CoGS) can be assigned to the 'cost' field of any associated inventory records that are available in inventory. Any cost still remaining will be associated with the vehicle record itself, and will either be consumed as remaining inventory is sold (based on a percentage of sale price) or when the vehicle itself is sold or scrapped. For more information about how vehicle costing works in ITrack Enterprise, please contact ISoft support.
Fields
Field name | Type | Restriction | Required | Explanation | Example Value |
---|---|---|---|---|---|
vehicle_stock_number | string | 25 | Yes | A unique name that identifies this vehicle in the system | PETERBILT |
vehicle_type_name | string | 50 | Yes | The name of an inventory type for this vehicle. This is often used to distinguish vehicles for sale from vehicles for disassembly. | Parts Trucks |
vin | string | 20 | No | A vehicle identification number | 1FAFP53U24G129846 |
make | string | 50 | Yes | The make of the vehicle | PETERBILT |
vehicle_model | string | 50 | Yes | The model of the vehicle | 567 |
year | integer | Yes | The year the vehicle was produced | 567 | |
mileage | integer | No | The mileage of the vehicle (currently or at the last time of service) | 16000 | |
body_style | string | 25 | No | Information about the style of the vehicle body | DAY CAB |
external_color | string | 25 | No | Description of the outside color of the vehicle | BLUE |
external_color_code | string | 25 | No | A paint color code for the outside color of the vehicle | |
internal_color | string | 25 | No | Description of the inside color of the vehicle | BEIGE |
internal_color_code | string | 25 | No | A paint color code for the inside color of the vehicle | |
location | string | 50 | Yes | The current location of the vehicle at the yard | Y1-R3-B6 |
category | string | 50 | Yes | The inventory category of the vehicle | Flatbed Trucks |
description | string | No | A long form description of the vehicle. Any contents of this field are public and will be displayed in online listings and on customer-facing documents. | ||
notes | string | No | A long form set of notes about the vehicle. Any contents of this field are internal and will not be displayed in public places. | ||
status | choice | A,H,S,C,D,B | Yes | A short status of the vehicle. Descriptions follow:
|
A |
title_number | string | 25 | No | A document number for the vehicle title | |
title_status | string | 20 | No | The current status of the vehicle title | |
title_type | string | No | |||
title_received | string | No | A long form set of notes about the vehicle. Any contents of this field are internal and will not be displayed in public places. | ||
title_state | string | 2 | No | The abbreviation of the state the vehicle title is in. | |
dismantled | boolean | No | Whether the vehicle has been dismantled into component parts or not. | True | |
purchased_from | string | 50 | No | A short description of the company or individual that the vehicle was purchased from | |
purchase_date | date | No | 2018-05-16 | ||
seller_contact | string | 25 | No | The name of a contact at the selling company or individual that sold the vehicle | |
seller_phone | string | 25 | No | The phone # of the contact at the selling company | |
seller_info | string | No | Additional notes about about the vehicle seller or its purchase | ||
claim_number | string | 25 | No | ||
adjuster | string | 50 | No | ||
file_number | string | 50 | No | ||
junking_number | string | 25 | No | ||
vehicle_accounting_category | string | 50 | Yes | The GL accounting category associated with the vehicle unit itself. This can affect the accounts hit when the vehicle is purchased, sold, or crushed. | Vehicles For Sale |
default_inventory_accounting_category | string | 50 | No | The GL accounting category to be used by default on any new inventory associated with the vehicle. | Used Parts |
total_vehicle_cost | decimal | Yes | The total expense associated with this vehicle that has been capitalized into cost. This should include any cost that has been consumed on sales into CoGS or allocated onto parts inventory. Essentially, total vehicle cost should be equal to total CoGS plus total cost allocated to remaining available inventory. | 1450.50 | |
total_vehicle_cogs | decimal | Yes | The total amount of vehicle cost that has been consumed on documents, including any component inventory that has been sold. If the vehicle has been sold, crushed as scrap, etc, this should be the entire vehicle cost that has not been manually allocated on remaining inventory. | 500.50 |
Downloads
Vehicles spreadsheet (w/examples)
Queries
# Vehicles
SELECT vehicle.storeid AS store_id, stocknumber AS vehicle_stock_number, inventorytype.name AS vehicle_type_name, vehicle.vin, vehicle.make, vehicle.model AS vehicle_model, vehicle.year, mileage, vehicle.bodystyle AS body_style, externalcolor AS external_color, externalcolorcode AS external_color_code, internalcolor AS internal_color, internalcolorcode AS internal_color_code, vehicle.location, vehicle.category, vehicle.description, vehicle.notes, vehicle.status, titlenumber AS title_number, titlestatus AS title_status, titletype AS title_type, titlereceived AS title_received, titlestate AS title_state, dismantled, purchasedfrom AS purchased_from, purchasedate AS purchase_date, sellercontact AS seller_contact, sellerphone AS seller_phone, sellerinfo AS seller_info, pickuplocation AS pickup_location, claimnumber AS claim_number, adjuster, filenumber As file_number, junkingnumber AS junking_number, glcategory.name AS vehicle_accounting_category, inventoryglcategory.name AS default_inventory_accounting_category, f_vehicle_cost(vehicle.vehicleid) AS total_vehicle_cost, f_vehicle_cost_consumed(vehicle.vehicleid) AS total_vehicle_cogs
FROM vehicle LEFt JOIN glcategory ON (glcategory.`glcategoryid` = vehicle.`glcategoryid`) LEFT JOIN glcategory AS inventoryglcategory ON (inventoryglcategoryid = inventoryglcategory.glcategoryid)
JOIN v_vehiclewholeunit ON (v_vehiclewholeunit.vehicleid = vehicle.vehicleid)
JOIN inventory ON (inventory.inventoryid = v_vehiclewholeunit.`inventoryid` AND inventory.storeid = v_vehiclewholeunit.storeid)
JOIN inventorytype ON (inventory.`inventorytypeid` = inventorytype.`inventorytypeid`);
Vehicle Answers (Additional Vehicle Attributes)
This table represents optional 'answers' for the 'questions' imported earlier. Each vehicle can have up to one answer for each question that is registered for the vehicle inventory type specified as part of the vehicle import. A vehicle can omit answers for any questions that do not apply to that particular vehicle.
Fields
Field name | Type | Restriction | Required | Explanation | Example Value |
---|---|---|---|---|---|
vehicle_stock_number | string | 25 | Yes | A unique name that identifies this vehicle in the system | PETERBILT |
question_text | string | 50 | Yes | The text of the question as previously imported in the inventory question import type. If it is not found, it will be added to the list of registered questions. | Mileage |
answer_text | string | Yes | The text of the answer for this specific vehicle. This field has an unlimited length | 25750 |
Downloads
Vehicle answers spreadsheet (empty)
Vehicle answers spreadsheet (w/examples)
Queries
# Vehicle Q&A
SELECT vehicle.stocknumber AS vehicle_stock_number, inventoryoption.option AS question_text , inventoryoptionvalue.value AS answer_text
FROM vehicle JOIN v_vehiclewholeunit ON (v_vehiclewholeunit.vehicleid = vehicle.vehicleid)
JOIN inventory ON (inventory.inventoryid = v_vehiclewholeunit.`inventoryid` AND inventory.storeid = v_vehiclewholeunit.storeid)
JOIN inventoryoption ON inventoryoption.`inventorytypeid` = inventory.inventorytypeid
JOIN inventoryoptionvalue ON (inventoryoptionvalue.inventoryid = inventory.inventoryid AND inventoryoptionvalue.`inventoryoptionid` = inventoryoption.inventoryoptionid);
Inventory
The inventory file allows someone to bring in used and new inventory records. If they are available, the (optional) inventory type, manufacturer, model, and vehicle model imports should be run first. The inventory import will create entries in the inventory type, manufacturer, and model tables for any rows that don't match anything previously imported.
Fields
Field name | Type | Restriction | Required | Explanation | Example Value |
---|---|---|---|---|---|
store_id | integer | Yes | The store number this part exists at. If the part is stocked at multiple stores, a separate row should be created for each. | 1 | |
sku_identifier | string | 50 | Yes | The 'name' of this item. This name/id is used as the internal part number in the system, as well as customer-facing documents and tag printouts. It is preferable that this value be unique per store. | ALN AT540-CORE |
vehicle_stocknumber | string | 50 | No | The stock # of the associated vehicle record (if any). If this vehicle is not found, it will not be created as part of the import. Therefore anything in this field should have already been created as part of the vehicle import, or the part will not be associated with a vehicle and its corresponding profitability and cost pool. | TESTVEHICLE |
description | string | No | A long-form description of the inventory record. Note: the contents of this field are public in internet listings and on customer-facing documents. | Rebuilt transmission, certified rebuild. | |
notes | string | No | A long-form internal description/notes for the inventory record. This information is internal to the system and will not be displayed in public contexts. | Marks along the side, consider repainting | |
accounting_category | string | 50 | Yes | The name of a general ledger accounting category that controls the accounting this part affects. All inventory with the same accounting category will hit the same sales/inventory/CoGS/etc accounts for the same context (sale, rebuild, purchase, etc). This field can be left empty if accounting will be disabled in the system. | Used Parts |
status | choice | A,H,S,C,D,B | Yes | A short status of the vehicle. Descriptions follow:
|
A |
quantity_on_hand | decimal | Yes | The amount of stock that is currently on hand. This includes inventory that is on hold but has not yet been sold or consumed. | 10.000000 | |
inventory_type_name | string | 100 | Yes | Name of the inventory type for this SKU. If the user does not wish to use specific inventory types for replenishable (aftermarket) inventory, use a blanket type like "Miscellaneous Parts" | Miscellaneous Parts |
category | string | 50 | No | What inventory category this SKU belongs to. This can be used to categorize the item on documents and internet listings. | USED |
condition | string | 15 | No | A short description of the condition of the item. | GOOD RUNNER |
oem_number | string | 30 | No | A number from the original equipment manufacturer which can be used to lookup the item. If there are several numbers/ids that can be used to find this item, use the inventory_lookup import to add more UPCs or alternate part lookups of other types. | |
manufacturer | string | 50 | No | The name of company that produces this item (not necessarily the company you purchase it from). For some part types, items are generally known by their application, not their manufacturer. In those cases, leave this blank and simply fill out the assembly_manufacturer instead. For major assemblies (engine/transmission/etc) where items are known by the OEM, this will often be the same as the assembly_manufacturer. | Allison |
model | string | 50 | No | The model # that identifies this item to the company listed in the manufacturer above. For some part types, items are generally known by their application, not their manufacturer. In those cases, leave this blank and simply fill out the assembly_model instead. For major assemblies (engine/transmission/etc) where items are known by the OEM, this will often be the same as the assembly_model. | AT540 |
assembly_manufacturer | string | 50 | No | This is the manufacturer that is used to search this item by what it applies to/fits in. This is generally the manufacturer a part is 'known by'. For major assemblies (engine/transmission), this is generally the same as the actual manufacturer. For assembly components, it will generally be the manufacturer of the assembly this part fits. So a gasket kit may be known by the manufacturer of the engine it fits. | Allison |
assembly_model | string | 50 | No | This is the modelthat is used to search this item by what it applies to/fits in. This is generally the model a part is 'known by'. For major assemblies (engine/transmission), this is generally the same as the actual model. For assembly components, it will generally be the model of the assembly this part fits. So a gasket kit may be known by the model of the engine it fits. | AT540 |
inventory_type_data_1 | string | 50 | No | Data that corresponds to the first label on this SKU's part type (see inventory_type_label_1 in the inventory_type import) | 230HP |
inventory_type_data_2 | string | 50 | No | Data that corresponds to the first label on this SKU's part type (see inventory_type_label_2 in the inventory_type import) | Yes |
inventory_type_data_3 | string | 50 | No | Data that corresponds to the first label on this SKU's part type (see inventory_type_label_3 in the inventory_type import) | 123456 |
inventory_type_data_4 | string | 50 | No | Data that corresponds to the first label on this SKU's part type (see inventory_type_label_4 in the inventory_type import) | 40PSI |
deplete | boolean | Yes | Whether this item can be depleted. This defaults to True. If set to False, the quantity_on_hand, average_cost, and average_core_cost of the item will be ignored and selling or consuming the item will not affect the item. Generally this is only False for SKUs that represent fees or items with an arbitrary stock. | True | |
public | boolean | Yes | Whether this item should be shown on any website or online integrations. | True | |
taxable | boolean | Yes | Whether this item should (by default) be marked as taxable on any sales documents. | True | |
serialized | boolean | Yes | Set to True if this item tracks a serial # or other individual # for every item quantity_on_hand. If serialized is True, make sure to specify the serial #'s as part of the import into inventory_locations. | False | |
average_cost | decimal | Yes | This should represent a capitalized cost 'per quantity' of the items in inventory. After import, average_cost is tracked based on expenses in the system (POs, WOs, etc) and cannot be edited directly by the user. | 325.50 | |
list_price | decimal | No | The list price of the item. Used in some online listings as well as customers who pay some markup of list price on inventory. | 2250.50 | |
retail_price | decimal | No | The retail price of the item. Used in some online listings as well as the default price customers pay. | 2250.50 | |
retail_core_charge | decimal | No | The retail core charge on this item. This only applies if this item has core charges on customer documents. Used in some online listings as well as the default core charge customers pay. | 250.00 | |
wholesale_price | decimal | No | The wholesale price of the item. Generally a lower charge than the retail price. This will be used for customers who pay a markup of wholesale. | 1800.00 | |
wholesale_core_charge | decimal | No | The wholesale core charge for the item. Generally lower than the retail core charge. This will be used for customers who pay a markup of wholesale. This only applies if this item has core charges on customer documents. | 200.00 | |
jobber_price | decimal | No | Generally a lower charge than the wholesale price. This will be used for customers who pay a markup of jobber. | 1700.00 | |
jobber_core_charge | decimal | No | Generally lower than the wholesale core charge. This will be used for customers who pay a markup of jobber. This only applies if this item has core charges on customer documents. | 185.00 | |
distributor_price | decimal | No | Generally a lower charge than the jobber price. This will be used for customers who pay a markup of distributor. | 1700.00 | |
distributor_core_charge | decimal | No | Generally lower than the jobber core charge. This will be used for customers who pay a markup of distributor. This only applies if this item has core charges on customer documents. | 185.00 | |
interchange_group | string | 20 | No | A value that represents an interchangeable 'group' of items. All items that are at least partially interchangeable for a particular year/make/model or year/manufacturer/model application should have the same value entered. | 1101 |
sub_interchange_group | string | 5 | No | An optional value that represents a sub-group of the specified interchange_group. If two items with the same interchange_group have a different sub_interchange_group, that means the items are partially interchangeable. Generally this means the item must be somehow modified to apply. | B |
weight | decimal | No | The average shipping weight of an example of this SKU. | 375.000000 | |
shipping_width | decimal | No | The average width of the item when shipped. | 36.00 | |
shipping_length | decimal | No | The average length of the item when shipped. | 42.00 | |
shipping_height | decimal | No | The average height of the item when shipped. | 30.00 | |
replenishable | boolean | Yes | Whether this SKU represents an item that is replenishable. Such items will keep a status of Available if quantity drops to 0. Non-replenishable items will gain a status of Sold if they reach 0 quantity_on_hand. | True | |
minimum_stock_level | decimal | No | (replenishable inventory only) if the quantity drops below this value, the system will suggest an order to bring stock back up to maximum_stock_level. | 5.000000 | |
maximum_stock_level | decimal | No | (replenishable inventory only) if the quantity drops below minimum_stock_level value, the system will suggest an order to bring stock back up to this quantity. | 20.000000 | |
default_purchase_vendor | string | 50 | No | (replenishable inventory only) the company name of the vendor that stock is ordered from by default. | All American Truck Parts |
vendor_part_number | string | 40 | No | (replenishable inventory only) this is the identifier used on purchase orders that identifies purchases of this item to the default purchase vendor. | AA AT540 |
core_class | string | 10 | No | (replenishable inventory only) parts that share a core_class are interchangeable when being returned to the purchase vendor in exchange for a core charge. | |
unit_of_measurement | string | 10 | No | (replenishable inventory only) denotes what 1 quantity of this item represents (foot, EA, inch, etc) | EA |
vendor_product_code | string | 50 | No | (replenishable inventory only) | |
popularity_code | string | 10 | No | (replenishable inventory only) the popularity class of this item. For example: A/B/C popularity class for items that are fast or slow moving. | A |
vendor_popularity_code | string | 10 | No | (replenishable inventory only) the popularity class of this item for the default purchase vendor. | |
seasonal | boolean | No | (replenishable inventory only) whether this item's usage pattern follows a yearly seasonal pattern. | False | |
buy_package | integer | No | (replenishable inventory only) this represents (in terms of the company's stock quantity) that the vendor sells in groups of. For example, if the user stocks inches of tubing, but the vendor sells in 5 foot increments, buy_package would be 60. | ||
sell_package | integer | No | (replenishable inventory only) this represents (in terms of the company's stock quantity) that the company sells in groups of. For example, if the user stocks inches of tubing, but sells in 1 foot increments, sell_package would be 12. | ||
vendor_sells_in_packs | boolean | No | (replenishable inventory only) if True, vendor facing documents will represent purchase quantity in terms of the buy_package. For example, if the user stocks inches of tubing, and the vendor sells in 5 foot increments that it considers "1 spool", a purchase order printout of 120 inches would show an order of 2 (spools). | False | |
stocking_type | choice | Special Order, Stocked, Obsolete | No | (replenishable inventory only) dictates whether the item is actively stocked. Items that are Special Order will be part of suggested orders if they are on any hold orders. Obsolete items will not show up to be ordered. | Special Order |
stocking_method | choice | None, Min/Max, History | No | (replenishable inventory only) the stocking methodology. Min/Max means order up to max when quantity is below min. History means use historical ordering fields to decide how many to order. | Min/Max |
stocking_days | integer | No | (replenishable inventory only) the average number of days between ordering this item and when it is received. This will be used as part of historical ordering suggestions. | 7 | |
safety_stock_percent | decimal | No | (replenishable inventory only) As part of historical ordering suggestions, this is an extra % of stocking levels to order as a 'safety net' | 10.00 | |
purchase_cost | decimal | No | For replenishable inventory: this is the expense required to purchase a single unit of the SKU from the default purchase vendor.
For parts off of a vehicle: this is a statically allocated section of the vehicle's cost pool to allocate to this part. For all other parts: a general cost valuation of the item. This will be used for customers who pay a markup of cost. |
1400.00 | |
core_purchase_cost | decimal | No | (replenishable inventory only) this represents a value that the default purchase vendor will charge in the form of a 'core charge' when ordered. | 100.00 |
Downloads
Inventory spreadsheet (w/examples)
Queries
# inventory
SELECT inventory.storeid AS store_id, tagnumber AS sku_identifier, vehicle.stocknumber AS vehicle_stock_number, inventory.description, inventory.notes, glcategory.name AS accounting_category, inventory.status, quantity AS quantity_on_hand,
inventorytype.name AS inventory_type_name, inventory.category, `condition`, side, oemnumber AS oem_number, manufacturer.name AS manufacturer, model.name AS model,
parentmanufacturer.name AS assembly_manufacturer, parentmodel.name AS assembly_model,
typedata1 AS inventory_type_data_1, typedata2 AS inventory_type_data_2, typedata3 AS inventory_type_data_3, typedata4 AS inventory_type_data_4,
deplete, public, taxable, serialized, averagecost AS average_cost, listprice AS list_price, retailprice AS retail_price, retailcore AS retail_core_charge, wholesaleprice AS wholesale_price, wholesalecore AS wholesale_core_charge, jobberprice AS jobber_price, jobbercore AS jobber_core_charge, distributorprice AS distributor_price, distributorcore AS distributor_core_charge,
interchangenumber AS interchange_group, subinterchangenumber AS sub_interchange_group, inventory.weight, shippingwidth AS shipping_width, shippinglength AS shipping_length, shippingheight AS shipping_height,
replenish AS replenishable,
minquantity AS minimum_stock_level, maxquantity AS maximum_stock_level, vendor.company AS default_purchase_vendor, partnumber AS vendor_part_number, coreclass as core_class, unitofmeasurement as unit_of_measurement, vendorproductcode AS vendor_product_code, popularitycode AS popularity_code, vendorpopularitycode AS vendor_popularity_code, seasonal, buypackage AS buy_package, sellpackage AS sell_package, purchasefactor AS vendor_sells_in_packs, stocktype AS stocking_type, stockmethod AS stocking_method, stockingdays AS stocking_days, safetystockpercent AS safety_stock_percent, cost as purchase_cost, corecost AS core_purchase_cost
FROM inventory JOIN inventorytype USING (inventorytypeid) LEFT JOIN manufacturer ON (manufacturer.`manufacturerid` = inventory.`manufacturerid`) LEFT JOIN model ON (model.`modelid` = inventory.modelid) LEFT JOIN manufacturer AS parentmanufacturer ON (parentmanufacturer.manufacturerid = parentmanufacturerid) LEFT JOIN model AS parentmodel ON (parentmodel.modelid = parentmodelid) LEFT JOIN vehicle ON (vehicle.vehicleid = inventory.vehicleid) LEfT JOIN glcategory ON (inventory.glcategoryid = glcategory.`glcategoryid`) LEFT JOIN vendor ON (vendor.vendorid = inventory.vendorid)
LIMIT 10;
Inventory Lookups
Importing inventory lookups allows the user to specify alternate numbers or identifiers that should link to specified items. Lookups can be UPCs (used for scanning/entering packaging), alternate inventory record (used when one SKU replaces another), alternate part # (any kind of string that can be used to find the item in search), Supercession (an alternate vendor part # that can be used to find this part; used when a vendor or manufacturer changes identifiers). This import is optional.
Fields
Field name | Type | Restriction | Required | Explanation | Example Value |
---|---|---|---|---|---|
sku_identifier | string | 50 | Yes | The 'name' of an item in inventory. This lookup record applies to that item. | ALN AT540 |
sku_lookup | string | 30 | Yes | Depending on the relationship_type, this represents the value that links to the record. | ALN AT540-B |
other_sku_identifier | string | 50 | No | (Optional) The sku_identifier of another inventory record. If the relationship_type is Alternate Inventory Record, this will be the alternate SKU record that is being linked to. In other cases, it should be omitted. | ALN AT545 |
package_quantity | integer | Yes | A quantity multiplier to be applied when scanning a barcode or entering this lookup in the mobile warehouse management software. Useful in situations where certain vendor barcodes on packaging represent a package of multiple quantity. By default, this will generally be 1. | 1 | |
relationship_type | choice | UPC, Alternate Inventory Record, Alternate Part #, Supercession | Yes | Represents the nature of this record to its linked item/SKU. | UPC |
comment | string | No | A long-form user description, explaining the relationship | This record replaced the old item when the vendor changed part #'s back in 2016 |
Downloads
Inventory lookups spreadsheet (empty)
Inventory lookups spreadsheet (w/examples)
Queries
# inventory UPCs/lookups
SELECT inventory.tagnumber AS sku_identifier, lookup AS sku_lookup, originalinventory.tagnumber AS other_sku_identifier, packagequantity AS package_quantity, relationshiptype AS relationship_type, `comment` FROM inventorylookup JOIN inventory USING (inventoryid) LEFT JOIN inventory AS originalinventory ON (originalinventory.inventoryid = originalinventoryid) GROUP BY inventorylookupid;
Inventory Locations
This import will specify where the items that were imported as part of the inventory import are located at the facility. There should be records enough to account for the sum total of each inventory record's quantity_on_hand. If the rows imported for a particular SKU do not add up to the quantity on hand that was imported, the remaining difference will be put at a location of Variance and marked as lost for the next count.
For serialized items, there should be a row for every available SKU associated with the item, along with the location the item with that serial # is located at. Serialized rows should always have a quantity of 1.
Fields
Field name | Type | Restriction | Required | Explanation | Example Value |
---|---|---|---|---|---|
store_id | integer | Yes | The store number of the inventory record that this location corresponds to. | 1 | |
sku_identifier | string | 50 | Yes | The 'name' of the inventory item this applies to. | ALN AT540-CORE |
location | string | 50 | Yes | The location the item is located at. This location will be created as part of import if it does not exist at the given store. | W1-R1-L2-B6 |
serialnumber | string | 25 | No | The unique serial #/item # that represents a single quantity of the associated inventory record. If the associated SKU is serialized, a number of rows should exist with a valid serialnumber value equal to the quantity_on_hand of that record. | 1-439874 |
quantity | decimal | Yes | The quantity of the associated item located at the given location. For serialized records, this should be 1. | 1 |
Downloads
Inventory locations spreadsheet (empty)
Inventory locations spreadsheet (w/examples)
Queries
# inventory serials/locations
SELECT inventorystoreid AS store_id, inventory.tagnumber AS sku_identifier, inventorylocation.location, '' AS serialnumber, inventorylocation.quantity FROM inventorylocation LEFT JOIN inventory ON (inventory.inventoryid = inventorylocation.inventoryid AND inventory.storeid = inventorystoreid) WHERE serialized = 'False'
UNION ALL
SELECT inventorystoreid AS store_id, inventory.tagnumber AS sku_identifier, inventoryserial.location, inventoryserial.`serialnumber`, 1 FROM inventoryserial JOIN inventory ON (inventory.inventoryid = inventoryserial.inventoryid AND inventory.storeid = inventorystoreid) WHERE serialized = 'True';
Inventory Answers (Additional Attributes)
This table represents optional 'answers' for the 'questions' imported earlier. Each inventory record can have up to one answer for each question that is registered for the inventory type specified as part of the inventory import. An inventory record can omit answers for any questions that do not apply to that particular inventory item.
Fields
Field name | Type | Restriction | Required | Explanation | Example Value |
---|---|---|---|---|---|
sku_identifier | string | 25 | Yes | A unique name that identifies this vehicle in the system | ALN AT540 |
question_text | string | 50 | Yes | The text of the question as previously imported in the inventory question import type. If it is not found, it will be added to the list of registered questions. | Mileage |
answer_text | string | Yes | The text of the answer for this specific vehicle. This field has an unlimited length | 25750 |
Downloads
Inventory answers spreadsheet (empty)
Inventory answers spreadsheet (w/examples)
Queries
# inventory Q&A
SELECT inventory.tagnumber AS sku_identifier, inventoryoption.option AS question_text, inventoryoptionvalue.value AS answer_text
FROM inventory
JOIN inventoryoption ON inventoryoption.`inventorytypeid` = inventory.inventorytypeid
JOIN inventoryoptionvalue ON (inventoryoptionvalue.inventoryid = inventory.inventoryid ANd inventoryoptionvalue.`inventoryoptionid` = inventoryoption.inventoryoptionid)
WHERE inventoryoptionvalue.value != ''
GROUP BY inventory.inventoryid;