Purpose'
To import a list of items and prices into a fresh install of FA v2.3.x from some other accounting system into FA manually.
Procedure
- Each Item is stored as one record in the stock_master table (primary key: stock_id) along with costs and CoA Account codes for various transactions like manufacturing, sales, etc.
- Each Item is also stored in the item_codes table as well with information pertaining to block quantity of sales and whether it is a foreign item (in which case the Item description here will override the one in the stock_master table and an alternate name for the Item is stored in the item_code field).
- Each item is allotted a price in the prices table for each sale_type_id listed in the sales_types table which has defaults of
- Retail
- Wholesale
Items Accounts Settings
Assumptions
- Company # = 1
- Currency = USD
- Default Sales Types of Retail and Wholesale related to Cost Price:
- Item Cost Price field name = CP
- Item WS Markup factor = WMK (eg., 1.15 => 15% Markup)
- Item Wholesale Selling Price = CP * WMK
- Item Retail Markup Factor = RMK
- Item Retail Price = CP * WMK * RMK
- Item Description field = ItemDesc
- Numeric CategoryID field = category_id
- Stock Item ID field = stock_id
- Unit of measure = UOM (eg., each)
- All items bear Tax Type Id = 1 (taken from id in tax_types table)
- All items are sold in blocks of quantity of 1
- All items are at Default Location = DEF (taken from loc_code in locations table)
- Reorder Level field = ROL
- Table name containing raw items data = items_list
- Fields in items_list table to import from => stock_id, ItemDesc, category_id, UOM, ROL, CP, WMK, RMK
- All items are of "B" type (Bought Out / Purchased)
- sales_account = 4010
- cogs_account = 5010
- inventory_account = 1510
- adjustment_account = 5040
- assembly_account = 1530
Import SQLs
- First we import the items into the stock_master table:
INSERT INTO 1_stock_master
SELECT stock_id
, category_id
, 1 AS tax_type_id
, ItemDesc AS `description`
, '' AS long_description
, 'each' AS units
, 'B' AS mb_flag
, 4010 AS sales_account
, 5010 AS cogs_account
, 1510 AS inventory_account
, 5040 AS adjustment_account
, 1530 AS assembly_account
, 0 AS dimension_id
, 0 AS dimension2_id
, 0 AS actual_cost
, 0 AS last_cost
, 0 AS material_cost
, 0 AS labour_cost
, 0 AS overhead_cost
, 0 AS inactive
, 0 AS no_sale
, 0 AS editable
FROM item_codes
ORDER BY stock_id;
- Then we import the items into the item_codes table:
INSERT INTO `1_item_codes`
SELECT
NULL AS id
, stock_id AS item_code
, stock_id
, ItemDesc AS `description`
, category_id
, 1 AS quantity
, 0 AS is_foreign
, 0 AS inactive
FROM items_list
ORDER BY stock_id;
- Populate the loc_stock table with the stock_id's they have:
INSERT INTO `1_loc_stock`
SELECT
'DEF' AS loc_code
, stock_id
, ROL AS reorder_level
FROM items_list
ORDER BY stock_id;
- Now the prices get in
INSERT INTO `1_prices`
SELECT NULL AS id, stock_id, sales_type_id, curr_abrev, price FROM (
SELECT
stock_id
, 2 AS sales_type_id
, 'USD' AS curr_abrev
, CP * WMK AS price
FROM items_list
UNION
SELECT
stock_id
, 1 AS sales_type_id
, 'USD' AS curr_abrev
, CP * WMK * RMK AS price
FROM items_list
) a ORDER BY stock_id, sales_type_id;
- We are now done!











