Sign in as an admin to import a catalog. Use Import CSV on the Catalog tab, pick the pricebook the price column should fill, then upload a file or paste rows.
Column format
The first row must be a header. Recognized columns:
| Column | Meaning |
|---|---|
name | Required — the item name. |
sku | Optional. When supplied, matches an existing SKU. When omitted, matches the name without regard to capitalization. |
category | Optional. Created automatically if it doesn't exist. |
unit | Optional. Defaults to each. |
materialCost | Optional number. What the parts cost you. Defaults to 0. |
laborCost | Optional number. What the labor costs you. Defaults to 0. |
cost | Optional number. Only used when the file has no materialCost or laborCost column — the whole amount is treated as material cost. If your file has all three, the two component columns win and cost is ignored. |
price | Optional number. Sets the price for the selected pricebook. |
Extra columns are ignored, and rows without a name are skipped.
What the price column means
Before you import, the screen asks one question about your price column, and it is worth a moment because your file cannot answer it:
- Our prices — keep them exactly. These are the numbers you charge. Nothing recalculates them: cost edits and markup runs leave them exactly as imported, and they show a manual badge on the Catalog. This is the default.
- A starting point — let my markup schedule price them. The imported price still lands as-is, but the items are governed by the pricebook's markup schedule from then on, so the bands you set up next actually reach them. They show an auto badge. Pick this for a supplier or distributor list, where the price column is really their list price rather than yours.
If you are not sure, take the default. Keeping prices as imported and later handing them to the schedule is one click on the Markups page, and Pricebookr takes a snapshot first. The other way round — bands quietly repricing a list you had set by hand — costs you a rollback from History.
Imported four thousand rows, set up your bands, and the Markups preview says "0 items would change"? That is this choice. Everything came in as manual, and a markup schedule never overwrites a price a person set. The preview says how many were left alone and offers a button to hand them over — see Markup & margin schedules.
Cost columns
An item's cost is material cost + labor cost, and that total is what your markups and margins are figured from. Your file can carry the two parts separately, or carry a single cost column — a supplier list or an export from another system usually does, and the whole amount lands as material cost, which you can split later.
A column your file leaves out is left alone on items that already exist. A file with name, sku, and laborCost updates labor and does not touch anyone's material cost, the same way a file with no category column does not blank your categories. Keep name even when matching by SKU; rows without a name are skipped.
Safe to re-run
A catalog snapshot is taken automatically before every import, so you can roll back from the History tab if something looks wrong. Re-importing the same file updates matched items in place instead of duplicating them.
If a matching item is in Trash, importing restores it. The result counts these separately as restored from Trash. See Restore deleted items and resolve SKU conflicts.
When a row does not import
Correct any reported missing name, invalid number, or SKU conflict, then re-import the corrected rows. Other valid rows may already have been saved. Use the same SKU to update the same item; without a SKU, changing the name can create a second record instead.