January 2014 / PhreeBooksR36RC3
HowTo Author – Charles

T-shirtMaster Stock Item:

Master stock items are best described with an example. For example, T-shirts come in colors and sizes. These would be the attributes for the item T-Shirt.

  • a Red T-shirt in small, might have an SKU:  Tshirt-RDsm
  • a blue T-shirt in medium, might have an SKU:  Tshirt-BLme
  • a yellow T-shirt in large, might have an SKU: Tshirt-YLlg

In this example ‘T-shirt’ is the Master Stock Item and colour and size are the attributes.


Why have Master Stock Items?  It makes updating your stock faster and simpler. By changing the details of the Master Stock Item (e.g. Full Price) these changes are automatically applied to all the ‘children’ of the Master Stock Item.


NOTE – once a Master Stock Item / Master Stock Assembly has been created, it cannot be added to  i.e. you cannot later add an additional colour or size. You would have to enter them as a regular Stock Item and thus they wouldn’t be automatically updated when the details of the Master Stock Item were amended.

Master Stock Assemblyelectrical

A Master Stock Assembly  (MSA) is simply a Master Stock Item that is an ‘assembly’ i.e. it is assembled using other Inventory items in quantities defined in the BoM (Bill of Materials).

Once a Master Stock Assembly has been created in Inventory, including defining the BoM constituents (Bill of Materials), you can then ‘assemble’ some Inventory:
INVENTORY > Assemblies,  ‘Assemble/Disassemble Inventory’

It is worth noting the following:

  • Assemblies have to be created (and thus their Inventory numbers increased) manually. This should reflect reality – i.e. they should be created into stock when they are physically created.
  • When an assembly is assembled, the stock of its BoM items are reduced accordingly.
  • Assemblies can be disassembled by creating a negative number of assemblies. This will also adjust the stock of items in the BoM.


In the screen-shot above, please note that ‘Stuff’ is the Master Stock Assembly (not itself representing an item in stock) and the inventory listed below it represents the actual Inventory in the warehouse (the children of the MSA) – with the ‘attributes’ defined in their respective SKU’s.


The Master Stock Assembly can also be used to address the common business situation of buying in bulk (one SKU) and selling in a smaller quantity/individually (another SKU). I have put this in a separate How-To.

January 2014 / PhreeBooksR36RC3lineinsand

This article has been put together using information distilled from the Forum, originally contained in posts Dave has made to various requests for help. It is based on his own experiences in migrating from Sage Peachtree Complete – now called Sage 50 Complete – to PhreeBooks.

The ‘Line in the Sand’:

DP – I used the ‘Line in the Sand’ approach where I did my entire conversion on a holiday to convert from Peachtree to PhreeBooks (fiscal year-end is best). This way, you don’t need cash receipts, journal entries, etc. However, with this method you will still need Peachtree to look at transactions before the conversion date. There are some guidelines in the Help manual (COMPANY > Help).

“The only way to convert is the ‘line in the sand’ approach. With this method, you pre-test your import scripts and then (preferably during a period or fiscal year end) import customers, vendors, and inventory. Next enter beginning balances and import sales orders, purchase orders, receivables and payables. It takes a little time to get the templates set up but once you have everything lined up, the whole process takes about 4 hours to start with PhreeBooks.”   …   Dave Premo 2013

DP Personal Note: It took me about 2 weeks to prep everything. Most of the time was spent cleaning up my Peachtree install. I found that my inventory valuation (when exported with cost and summed externally with the spreadsheet app) didn’t match with the balances in the Balance Sheet inventory accounts. Same for Payables and Receivables. I had over 10 years of Peachtree data and it took a while to get my balances to align. There were inventory items in Peachtree that had zero stock with a monetary value. This shouldn’t be allowed to happen. Once I had the templates set up and went through a couple of ‘dry runs’, the actual import process took about 3 hours on a Saturday. Never looked back since.

Sage-Peachtree to PhreeBooks Migration:

Line in the sand is a term where up to a specific point in time (at the end of a fiscal year or accounting period) you will move all processing from Peachtree to PhreeBooks. To do this, you will need to pre-test your export/import scripts so when you go to change over, you have debugged the process and the transition is smoother. When I changed over, it took about 3 hours. I converted on a fiscal year boundary. Here is the rough outline of what I did to convert over. I ran several trail runs at this so when the big day came, the transition was relatively easy.

General Procedure for Converting from Sage-Peachtree to PhreeBooks:

  1. Clear out any journal entries in PhreeBooks. General Ledger -> General Journal Utilities -> Purge
  2. Make sure there are no negative quantities in Peachtree. (convert to SO from invoice)
  3. Export inventory valuation from Peachtree (4 columns: ID, Inv Account, Qty on Hand, Item Value). Export to Excel, Sort by qty/Item value. Remove all items with zero quantity (may also clean up stray fragments on Peachtree costing data). Insert blank column 3 on spreadsheet. Set new header row (5 total – sku, inv_gl_acct, gl_acct, quantity, total_amount). Fill gl_acct column with beginning balance account number. Save as csv file locally. Import through PhreeBooks General Journal -> Utilities -> Enter Beginning Balances -> Import Inventory -> Inventory Import. Select file just created and click on upload inventory.
  4. Print out Balance sheet in PhreeBooks and review the inventory accounts. This should align with Peachtree Balance Sheet but seldom do. Compare the accounts with the Peachtree balance sheet and make any necessary adjustments through the general journal entry in Peachtree. Use cost of goods sold as the offset account. This is the valuation that is stored in Peachtree and will carry over to PhreeBooks.
  5. Export Purchase Orders. Align with import beginning balance spec. Needed to add 5 columns after id (gl_acct, inv_gl_acct, order_total, freight_total, tax_total) not supplied from Peachtree. order_total, freight_total, tax_total are not required. Peachtree also doesn’t expoort the total cost for the items but does export individual cost, be sure to change the unit_price to total price. Save as csv file. Import into Phreebooks.
  6. Export Accounts Payable. These are entered as a single line item showing balance due. The inventory has already been accounted for along with it’s valuation. Sort by net pay not equal to zero and clean. Copy headers to match spec and import.
  7. Export Sales Orders. Use the same beginning balance account as inventory as the offset account. Generally sales is the inv_gl_acct account.
  8. Export Accounts Receivable. These are entered as a single line item showing balance due. The inventory has already been accounted for along with it’s valuation. Sort by net pay not equal to zero and clean. Copy headers to match spec and import.
  9. This another opportunity to sync you Peachtree accounts. Print a PhreeBooks balance sheet and Peachtree balance sheet. The Accounts Receivable accounts and Accounts Payable accounts should be the same. If not Peachtree will need a journal entry to align them. Use a Sales account as the offset account for receivables and cost of goods sold for Payables.
  10. Sync the beginning balances. Print the Trial Balance report from Peachtree. We have entered the payables, receivables, and inventory during the import operations. The rest of the accounts new need to be entered. Leave the Accounts Receivable and Payable accounts zero. Inventory should be the same and already present. The beginning balance account used for the above operations will need to be corrected from the current entry to: sum of Accounts Payables accounts – sum of Accounts Receivables accounts. When all data is entered the beginning balance total at the bottom of the screen should (and needs to be) zero.

 Now that was easy!

Other ‘Pearls’ of Wisdom from the Forum:

  • When you draw your ‘Line in the sand’ it will include all completed transactions up to the point your change over. All you have to worry about are the ‘open’ transactions. Inventory balances, accounts receivable and payable, Sales and Purchase Orders are the primary concerns since these are all transactions that are not complete.
  • An Equity – Doesn’t Close account is a GL account that does not zero out at the end of the fiscal year (which the balance transfers to ‘Equity – Retained Earnings‘). Accounts like Beginning Balances, StockOwners Paid-In Capital are examples of non-closing GL accounts. Example Equity – Gets Closed GL accounts are Dividends and Stock Payouts. These accounts get cleared at the beginning of each fiscal year (to ‘Equity – Retained Earnings‘). You should be able to see these types of accounts on your balance sheets from year to year.
  • From the Import/Export menu press Enter Beginning Balances. From there you can import SOs, POs, Invoices, and Purchases. Only import the ‘open’ ones. I recommend using the ‘Line in the sand’ approach, i.e. pick a end of period, import open entries and enter the remaining beginning balances at one time   …   You can do this with the .csv import through General Ledger-> Administrative Tools -> Import Beginning Balances. The best approach to use is the Line in the sand approach where you test run your export (from your old system) and import processes (into Phreedom) and then pick a day to stop using your old system and move to Phreedom. In the help file, search for Import and there should be a page describing the format.

Post any comments to the Forum

severincloudThis article will help you move your PhreeBooks install to a new server.


Source – The server that contains the version to be moved
Destination – The server where PhreeBooks is being moved to


(1) Destination: Create a new database
(2) Destination: Create a new PhreeBooks install (follow installation instructions), also load any extension modules that are in use
(3) Destination: Remove install folder
(4) Destination: Remove all files from the my_files folder
(5) Destination: Set permission on my_files folder to 777 (if changed from install)

(6) Source: Log in to PhreeBooks and download a backup of the database to your local machine
(7) Source/Destination: Copy all files from the source /my_files folder to the destination /my_files folder. HINT:  I staged the files on my local machine and took this opportunity to create a backup of my files.

(8) Destination: rename the /my_files/DB_NAME folder to the new database name (NEW_DB_NAME)
(9) Destination: edit the /my_files/NEW_DB_NAME/config.php file and change the database credentials to the destination database credentials
(10) Destination: change user:group permissions of all files and folder in /my_files to webserver owner, if necessary

(11) Destination: unzip and upload (ftp is best) the *.sql backup file to the /my_files/backups/ folder
(12) Destination: Log into the Clean PhreeBooks install and run the restore script (Tools -> Company Backup -> Restore icon, select the file and press Start)
(13) Destination: Log out and back in. You should see your data from the source company. NOTE: If the version is newer on the clean install, an upgrade will be performed automatically during log in, it may take a bit.
(14) Note:  If you use a ‘database prefix’, and your database prefix for Source and Destination databases are different – the back-up from the Source will not load into the Destination database.

multicurrencyFeb 2014 / PhreeBooksR36RC3
Author – Charles

If you want to change the ‘default’ currency from US$ to another currency, it MUST be done before any entries are made into PhreeBooks.

Enable Multi-Currency:

COMPANY > Module Administration (click on Mod. Admin. and not sub-menu) > General Settings > Configuration

Enable multiple currencies in user entry screens.
If No is selected, only the default currency wil be used.  YES / NO

Forex Servers:

PhreeBooks currently uses Oanda and Yahoo to automatically update it’s forex rates upon Login.
Oanda   …   http://www.oanda.com/convert/fxdaily?value=1&redirected=1&exch=
Yahoo   …   http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=


  • PhreeBooks is partially Multi-Currency enabled
  • PhreeBooks will allow a user to enter transaction details in a foreign currency in CUSTOMERS > Invoices and VENDORS > Purchase/Receive, however
  • All transactions are saved in the default currency (with the prevailing exchange rate).
  • If a transaction is later viewed it will be shown in the foreign currency, as originally recorded.
  • Any ‘Foreign Currency’ Bank Accounts will be dealt with in the default currency, therefore
  • An adjustment will need to be made at year-end in the accounts to properly account for any (exchange rate movement induced) difference in valuation between actuals and the amount recorded in PhreeBooks. Exchange rate gains / losses.

Taken from the PhreeBooks ‘Help’

COMPANY > Help > User Manual > Setup > Currencies

PhreeBooks is designed to handle multiple currencies. the US Dollar is the default currency shipped with the standard release.

Updating the exchange rate

Exchange rates can be updated through two exchange servers, oanda and xe. Oanda is the primary server and xe is the backup server should oanda be down.

  1. Select Setup->Currencies.
  2. Press the Update Exchange Rate icon. The exchange rate servers will be queried and the rates updated.

Adding a Currency

  1. Select Setup->Currencies.
  2. Press the New icon and a popup will appear.
  3. Select the Title of the currency, i.e. US Dollar, Euro, Yen, etc.
  4. Enter the ISO code for the currency, USD, EUR, etc.
  5. Enter the symbol to use to the left and/or right, $ for USD, € for EUR, etc.
  6. Enter the symbol to use for the thousands place and decimal places.
  7. Enter the current exchange rate relative to the default currency. Leave the value blank if it will be updated when the exchange rate is updated.
  8. If this is to be the default currency, check the Set as Default box.
  9. Press the Save icon to save the entry into the database.
  10. Press the Update Exchange Rate icon to refresh the current exchange rate with the exchange rate servers.

Changing the Default Currency

  1. This can only be done before any postings have been entered.
  2. Select Setup->Currencies.
  3. Press the Edit icon next to the currency to set as default and a popup will appear.
  4. Check the Set as Default box.
  5. Press the Save icon to save the entry into the database.
  6. Please note that if you change the ‘default currency’ from US$, you must expect to have to manually change the currency sign in any / all PhreeBooks Reports used, using PhreeForm.

Deleting a Currency

  1. Select Setup->Currencies.
  2. Press the Delete icon next to the currency to delete and a confirmation popup will appear.
  3. Press OK to confirm the deletion and the currency will be removed from the database.

Please post and queries / comments to the Forum