Product imports are how you create or update a whole catalog of products at once from a spreadsheet — faster than adding them one at a time when you're onboarding, loading a new vendor's line, or pushing a bulk price change.

In the POS mode, open Products in the left sidebar. The Import products button sits in the top-right of the list, next to Add product.

Downloading the template

Click Import products top-right of the Products list. The Upload products modal opens with a dashed drop-zone in the middle and a Download template file link in the bottom-left.

Click Download template file and Rundoo saves products_template.xlsx to your downloads folder. The template is a pre-formatted Excel workbook with your company's actual department list, pricing-tier names, and location codes baked into dropdown tabs — so you edit it in Excel, save, and upload it back.

<aside> ⚠️

.xlsx only. The uploader rejects .csv, .xls, or any other extension with the error "Invalid file extension. Is your file's extension .xlsx?" Open the template in Excel, Numbers, or Google Sheets, but save or export it as .xlsx before uploading.

</aside>

<aside> 💡

50,000 rows per file. Rundoo caps each import at 50,000 products. If you have more than that, split the file into batches — the second batch can include the same ID column and Rundoo will just update whatever it already created on the first pass.

</aside>

What the columns are

The template ships with 95 columns on the first sheet (Sheet1) covering everything you can set on a product — far more than you'll ever fill for a single import. Only Product Name and Primary ID are required to create a product; the rest are optional and can fill in on later passes as your data matures. Here's every column, grouped by purpose.

Identity and classification

Column What it does Required?
Token Rundoo's internal unique ID for the product. Leave blank when creating new products — Rundoo fills it in. Populated when updating products you already exported. Blank to create
Product Name The name that prints on sale receipts and purchase orders. Yes
Primary ID The product's canonical identifier — usually a SKU or UPC. What cashiers scan or type at POS. Must be unique; if it starts with 0 (like a UPC), keep the leading zero. Yes
Additional IDs Alternate IDs that also find the product at the counter. Semicolon-separated. Must be unique across your catalog. Optional
Tags Report/search tags. Semicolon-separated. Tags must already exist in Rundoo — create them first at Admin > Product. Optional
Department, Class, Fineline The three-level product taxonomy. Each must match an existing entry (dropdowns in the template). Create new ones at Admin > Product > Product categories. Optional
Additional Fee A fee attached to this product (Eco Fee, California Paint Fee, Tint Fee). Must match an existing fee at Admin > Product > Additional fees. Blank defaults to None. Optional
Tax Status One of Taxable, Non-taxable, or Single-use (waives tax only for customers with a resale or job-specific exemption). Blank defaults to Taxable. Optional
Commissionable, Tintable, Non-stock, Active Per-product Yes/No flags. Active controls whether the product can be added to new sales and POs. Blank defaults to No. Optional
Internal Notes, Sale Reminders, Template Sale Product Notes, Template Order Product Notes Free-text fields for counter staff, shown at different points in the sale or PO. Use \\n for line breaks. Optional

Costs and vendors

Column What it does Required?
Cost Match Primary ID The Primary ID of another product whose costs and vendors this product should mirror. When set, Rundoo ignores this row's cost/vendor fields and uses the reference product's. Optional
Standard Cost, Standard Cost UOM The cost used for COGS and margin when your company is set to standard cost at Admin > Company > Cost management. Optional
Default Cost, Default Cost UOM The cost used when pricing by margin and the fallback on a PO if the vendor has no cost for this product. Blank defaults to $0.00. Optional
Default Vendor The vendor the product is ordered from by default. Must match an existing vendor name. Blank defaults to No Vendor. Optional
Additional Costs, Additional Cost UOMs, Additional Vendors Extra cost / UOM / vendor triples for products ordered from multiple vendors. Semicolon-separated, with the same number of entries across all three columns — order is paired (first cost + first UOM + first vendor, and so on). Optional
Vendor SKUs, Vendor SKU Vendors Vendor-specific SKUs and the vendors they map to. Semicolon-separated, same count in both columns, paired by position. This is how you capture per-vendor catalog numbers without making them scan-able Primary IDs. Optional

Pricing

Column What it does Required?
Price Match Primary ID The Primary ID of another product whose prices this product should mirror. When set, Rundoo ignores this row's pricing fields. Optional
Price Strategy One of Dollar, Margin, or Discount. Dollar treats each tier as an absolute price; Margin treats each tier as a % margin off cost; Discount treats tier 1 as a dollar price and tiers 2+ as a % off tier 1. Blank defaults to Dollar. Optional
Price Rounded For Margin / Discount strategies, rounds the computed price. One of To $0.99, To $0.09, To $0.05, or No. Ignored when Price Strategy is Dollar. Optional
Is Special Orderable, Is Non-nesting Yes/No flags. Blank falls back to the product's existing setting. Optional
Gift Card Type For gift-card products — the gift-card type defined at Admin > Product > Gift card types. Optional
Sale Form The sale form shown at checkout when this product is added to a cart (paint-tint notes, serial capture, etc.). Must match a sale form at Admin > Product > Sale forms. Blank defaults to None. Optional
Pricing: {Tier} One column per pricing tier defined in your company — e.g. Pricing: MSRP, Pricing: Retail, Pricing: Painter, Pricing: Contractor (CC), Pricing: Volume Contractor(CC). Format depends on Price Strategy: dollars ($60.78) for Dollar; percent (40%) for Margin; dollars for the first tier and percent for the rest for Discount. Rule-based tiers ignore updates here — edit those in the web app. At least one tier filled when creating
Quantity Break IDs, Quantity Break Quantities, Quantity Break Discounts, Quantity Break Markups, Quantity Break UOM Codes Semicolon-separated parallel columns defining automatic quantity-based discounts or markups (e.g. buy 4, take 10%). Same count across all columns, paired by position. Use either Discounts or Markups for each break, not both. Optional

Inventory (per-location)

Column What it does Required?
Case Quantity Minimum multiple you can order — if the product only comes in cases of 4, enter 4. Rundoo rounds suggested-order quantities up to the nearest multiple. Blank defaults to 1. Optional
Min: {Loc}, Max: {Loc} Per-location reorder points used by suggested ordering — one pair of columns per location in your company (e.g. Min: 1, Max: 1, Min: NY, Max: NY). Optional
Inventory: {Loc} Read-only. Rundoo exports your current on-hand here; it ignores any changes. Leave blank when creating. To change levels, run a count at POS > Counts > Start new inventory count. Leave blank
Bin Location: {Loc} Aisle/shelf label for where the product lives in each store (e.g. A1S4). Optional