Moving a shop onto BooksPOS starts with its lists: the items with the stock on the shelf, the customers with what they owe, the suppliers with what the shop owes them. Import data brings each list in from a spreadsheet, checks every row before anything is saved, and keeps a record of every file imported. From BooksPOS 1.1.0 it takes an Excel workbook as it is; every version takes a CSV file. It was tested with a CSV file of 50,000 items while the tills kept selling.
Before you start
- Order of work: items first, then customers, then suppliers. No order is required, but it is the easiest to check.
- One closing date: the stock count and the balances should be as of the same day, for example the night before BooksPOS starts. Opening balances are dated with it.
- Keep a copy of every file you import.
- Who can import:
| Import | Needs | Roles |
|---|---|---|
| Items | catalogue editing | owners, managers, warehouse staff |
| Items with opening stock | catalogue editing and stock adjustment | owners, managers, warehouse staff |
| Customers or suppliers | party editing | owners, managers, accountants |
| … with opening balances | party editing and opening balances | owners, managers, accountants |
The file: an Excel workbook or CSV
From BooksPOS 1.1.0, an Excel workbook (.xlsx) is chosen as it is, with no saving as anything else. On an earlier version, save the sheet as CSV first (below); a CSV file works in every version. The version of BooksPOS is shown under Settings › System & updates.
An Excel workbook (.xlsx):
- The first sheet is read: the first one with anything in it, sheets you can see before hidden ones. When the workbook has more sheets, BooksPOS says which one it read. Put the list on its own sheet, or move that sheet first.
- Cells come through as you typed them. Text stays text, so an ISBN, phone number or code typed as text keeps its leading zeros, and Urdu stays intact. A 13-digit ISBN or barcode typed as a number is read in full, never in the shortened form Excel shows for long numbers. A date cell is read as its date whatever format the cell shows, a percentage cell as a percentage (17%), and a formula gives the value Excel last worked out.
- Row numbers are Excel's: an error "on row 27" is row 27 of the sheet, empty rows counted.
- Up to 100,000 rows under the heading, 200 columns and 40 MB. A larger workbook is refused with a message saying so; split it into parts.
- The older .xls format, .xlsb and a workbook protected with a password are refused, and BooksPOS says which it is. In Excel choose File › Save As › Excel Workbook without a password, or save the sheet as CSV.
A CSV file: in Excel choose File › Save As and CSV UTF-8 (Comma delimited).
- Keep Urdu intact by choosing CSV UTF-8. Plain CSV loses Urdu; BooksPOS reads it for English text and warns you.
- A CSV file holds one sheet: a workbook with several lists is saved one sheet per file.
- Commas, semicolons or tabs as separators all work.
- Up to 100,000 rows per file.
For both:
- Keep the heading row. Columns can be in any order and have any names: you match them on screen, and common headings (Book Name, Price, Qty, Class, Mobile, Balance…) are matched for you.
- Rs, PKR and thousands commas are fine in amounts typed as text. Dates typed as text are day-month-year: 30-06-2026, 30/06/2026, or 2026-06-30.
What each list can hold
Items, one row per item, and each edition is its own row:
- Title / item name (required), type (book, stationery or general), edition, ISBN (check digit verified), authors, publisher (created if new), subject, class, board, language, year, binding, brand, colour, size, category, shelf, an old barcode or item code;
- retail and wholesale price per piece or copy;
- opening stock in pieces or copies (whole numbers, never boxes) with its unit cost;
- one pack: its name, pieces per pack, retail price and barcode;
- its tax, as you set it: Tax rate (%) from 0 to 100 (17, 17% and 2.5 all work; empty is 0), PCT code (8 digits, dots allowed, such as 4901.9900; empty uses the default PCT code under Settings › FBR POS) and Third Schedule (yes or no; empty is no). A wrong rate, PCT code or yes/no is shown on its row. BooksPOS suggests no rate or PCT code: take them from your tax adviser.
Customers: name (required), phone, address, type (retail, school, institution, wholesale), price tier, credit limit (empty means cash only), opening balance (what they owed on the closing date) and its date.
Suppliers: name (required), phone, address, notes, whether it is a publisher, opening balance (what the shop owed them) and its date.
The three steps
- Open Import data (under Administration) and choose Import products, Import customers or Import suppliers. Choose the file with Choose Excel or CSV file… (before BooksPOS 1.1.0 the button reads Choose CSV file…). BooksPOS shows how many rows and columns it found, and for a workbook which sheet it read.
- Match the columns. Each BooksPOS field shows the column it will be filled from, with an example value, so a wrong match is easy to spot. Fields marked * are required. For items, choose what Rows without a type are; for balances, the date they are as of.
- Check all rows. Every row is checked, and nothing is saved yet:
- Ready: will be added.
- Already there: skipped. Items match by ISBN, or by the same title, edition, publisher and type; customers by phone (or name without a phone); suppliers by name.
- Errors, with the row number as Excel shows it: a wrong ISBN, opening stock without a cost, text in a price column, the same item twice in the file.
- Warnings that do not block: "Another edition of this title is already in BooksPOS; this row becomes a separate product", or a missing price.
The totals show the Opening stock value and Opening balances the file will bring in. Then choose Import. If some rows have errors, correct the file and choose it again, or tick Import the other rows and leave out the ones with errors.
Matching the columns. The file's columns matched to BooksPOS's fields, with a preview. Screenshot of the current build (28 Sep 2026), synthetic demo data.
While it runs, and afterwards
- "Importing on the store server… Tills keep working meanwhile. You may close this window; the import continues and appears under Import data."
- Rows are saved in small batches, each complete or absent.
- If the store PC switches off mid-import, it continues from where it stopped the next time the store server starts. Nothing is imported twice.
- Import data lists every import: the file, who imported it, when, how many rows were added, already there or left out, and what happened to each row. BooksPOS keeps the file's rows exactly as imported, with their File fingerprint (SHA-256), so you can always tell which version of a file was used. For a workbook, what is kept and fingerprinted is the text of the sheet that was read: the same sheet saved again gives the same fingerprint.
Correcting mistakes
Imported records are ordinary records; nothing is undone with one click.
| Mistake | Correction |
|---|---|
| Wrong item details or price | Edit the item in Catalog. |
| Wrong opening stock | A stock adjustment with a reason. |
| Wrong opening balance | A correction on the customer's or supplier's opening balance. |
| A whole file imported by mistake | Not undone automatically; contact the BooksPOS team. |
Problems in a file. Errors and warnings with their row numbers; nothing is imported until they are dealt with. Screenshot of the current build (28 Sep 2026), synthetic demo data.
What is entered another way
- Prices of items already in BooksPOS: an import skips items that are already there, so change their prices in Catalog.
- Advances held for a customer or paid to a supplier: an opening balance is money owed, so take them as new advances on the first day. See Customer advances.
- A school's book list is filled in on School sets, not here. From BooksPOS 1.1.0 the list's draft editor has Import from file…, which takes the school's Excel or CSV file. See School course sets.
- Past sales stay in your old records. BooksPOS starts from the opening stock and balances of the closing date.
Common questions
Do I still have to save my Excel file as CSV?
Not from BooksPOS 1.1.0: choose the workbook itself, and its first sheet is read with ISBNs, phone numbers and Urdu as you typed them. On an earlier version, save the sheet as CSV UTF-8 (Comma delimited). A CSV file keeps working in every version.
My file counts stock in boxes. What do I do?
Convert to pieces first: 5 boxes of 12 is 60. Opening stock is always in pieces or copies.
What if my list has two editions of the same title?
Keep them as two rows with their editions. They become two items, as they should.
Can I import again after fixing errors?
Yes. Rows that went in the first time are recognised as Already there and skipped.
Related guides
Last updated 30 September 2026. Still stuck? Contact us.

