Supplier Stock Import
Supplier Stock Import — Usage Guide
How to bulk-update supplier prices and stock levels from a CSV / Excel / Google Sheet.
When to use this
- A supplier sends you a price + stock list (CSV/XLSX) and you want it reflected in
Supplier Item Price and Stock. - You want to create new supplier item records in bulk for the first time.
- You want to refresh prices/stock for existing supplier items on a recurring basis.
The two modes
The doctype has a Use Supplier Part Number checkbox. This flag changes how rows are matched:
| Mode | Flag | Matches existing records by | Can create new records? |
|---|---|---|---|
| Barcode mode | OFF | (supplier, barcode, uom) |
Yes — looks up Item from barcode |
| SPN mode | ON | (supplier, supplier_part_number) |
No — update only |
When to use each
- Barcode mode — first-time supplier onboarding, or any import that includes brand-new supplier items. Requires barcode on every row.
- SPN mode — recurring stock/price refreshes after onboarding is complete. No barcode column needed.
The recommended workflow is barcode-mode first, SPN-mode after — see the workflow section below.
Template format
All imports use the same template columns. Download via the Download Template button on the form.
| # | Column | Required (Barcode mode) | Required (SPN mode) | Type | Description |
|---|---|---|---|---|---|
| 1 | Supplier Part Number | Optional | Required | Data | Supplier's internal SKU/part number |
| 2 | Stock Qty | Optional (default 0) | Optional | Int | Stock quantity at supplier |
| 3 | UOM | Required | Optional* | Number | Conversion factor (e.g. 1, 6, 12) |
| 4 | Price | Optional (default 0) | Optional | Float | Per-UOM price in the doc's currency |
| 5 | Barcode | Required | Not used | Data | EAN/UPC — must match Item Barcode |
* In SPN mode, the UOM column is read but not used to disambiguate (records are matched by SPN alone). Leave blank or populate — both work.
What gets updated
The Import Stock and Import Price checkboxes on the import doc control which fields get updated on existing records:
Import StockON → updatesstock_qtyImport PriceON → updatesprice- Both OFF → only
supplier_part_numberis updated (rarely useful) - For new record creation (Barcode mode only), both
stock_qtyandpriceare always written.
Step-by-step
1. Create a new Supplier Stock Import
Supplier Stock Import → New. Fill in:
- Supplier — required. One supplier per import file.
- Currency — defaults to system currency.
- Use Supplier Part Number — leave OFF for first imports, turn ON for refresh imports.
- Import Stock / Import Price — tick what you want updated.
2. Provide the data
Either:
- Upload file — CSV, XLSX, or XLS via the
Entry Listfield, OR - Google Sheets URL — paste a shareable link (sheet must be publicly viewable).
3. Start the import
Click Start Import. The job runs in the background:
- Status moves to In Progress.
- A progress bar appears for files with more than 5 rows (
Importing X of Y). - Final status: Success, Partial Success, or Error.
4. Review the results
- Import Log — line-by-line trace of created/updated records and per-row errors.
- Export Errored Rows button (only visible on Partial Success / Error) — downloads a CSV of the failed rows with an
Errorcolumn appended. Fix the rows, re-upload as a new import. - Re-Import button — re-runs the import without changing the file.
Recommended workflow
First-time supplier onboarding (barcode mode)
- Get a file from the supplier containing barcode + UOM + SPN + price + stock.
- Create import doc:
- Supplier:
- Use Supplier Part Number: OFF
- Import Stock + Import Price: ON
- Supplier:
- Upload + Start Import.
- Each row creates a new
Supplier Item Price and Stockrow with bothbarcodeandsupplier_part_numberpopulated.
Recurring price/stock refresh (SPN mode)
Once onboarding is done, the supplier's regular update feed often does not include barcodes — only their part numbers. Use SPN mode:
- Create a new import doc for the same supplier.
- Use Supplier Part Number: ON
- Import Stock + Import Price: ON (or just one, as needed).
- Upload the file (CSV needs only SPN + Stock + Price columns; the UOM/Barcode columns can be empty or absent).
- Start Import.
Each row finds the existing SIPS record by (supplier, supplier_part_number) and updates only the stock/price fields you ticked. No barcode lookup happens — so if a supplier's barcode is missing or wrong on their feed, nothing breaks.
Error reference
| Error message | Cause | Fix |
|---|---|---|
Supplier Part Number is required when 'Use Supplier Part Number' is checked |
SPN mode is on but row has an empty SPN column | Fill the SPN column or turn the flag off |
Barcode is required |
Barcode mode is on but row has no barcode | Fill the barcode column or switch to SPN mode |
No item found for barcode: <X> |
The barcode isn't registered on any Item Barcode row |
Add the barcode to the right Item, or correct the CSV |
UOM is required |
Couldn't resolve the conversion factor to a UOM | Make sure the conversion factor matches a UOM in UOM Conversion Detail for the Item (or set custom_default_conversion_factor on a UOM as a global fallback) |
No existing record for supplier part number 'X'. SPN mode can only update existing records. |
SPN mode is on but the (supplier, SPN) pair doesn't exist yet in SIPS | Either onboard the item first via Barcode mode, or check the SPN matches |