Price Lists reference
Statuses
Section titled “Statuses”| Status | How you get there | What it allows |
|---|---|---|
| Draft | Every new or duplicated price list starts here. | Edit, price products, assign and unassign companies. Quotes and sales orders do not apply it; the form for an assigned company shows Cannot apply pricelist - Company pricelist Contractor Standard is in Draft (with the price list’s name). |
| Active | Choose Active under Status in Edit Price List. | Everything Draft allows. Quotes and sales orders for assigned companies use its prices. |
| Archived | Choose Archived under Status in Edit Price List. | Edit and price products. Assign Company is hidden; unassign still works. Quotes and sales orders do not apply it and show the same hint ending is Archived. |
A status can be changed to any other status from the Edit Price List dialog, with no confirmation. There is no delete.
Permissions
Section titled “Permissions”| Permission | What it shows | Without it |
|---|---|---|
| Price Lists: Read | Price Lists in the sidebar, the list page, the price list page with its Products tab, Export and the History dialog. | The pages are not reachable. |
| Price Lists: Create | Add Price List and the Duplicate icons (list row, card and header). | The buttons are hidden. |
| Price Lists: Update | Edit price list, editable FINAL PRICE and MARGIN % cells, the selection checkboxes, the selection banner with Apply pricing (or the Edit Pricing bar on a narrow screen), and Import. | The price cells are read-only and the controls are hidden. |
| Companies: Read | The Company Assignments tab. | The tab is hidden. |
| Price Lists: Assign | Assign Company (on Draft and Active price lists) and the Unassign action. | The controls are hidden. |
Controls you lack the permission for are hidden rather than disabled. See Permissions for how permissions are granted.
Price table columns
Section titled “Price table columns”| Column | Meaning |
|---|---|
| PRODUCT | Product name and identifier. A product with no name shows a dash. |
| STATUS | Product status. Discontinued and Deleted products are read-only and have no checkbox. |
| MANUFACTURER | The product’s manufacturer. |
| SKU | The product’s SKU. Used to match rows on import. |
| COST | The product’s cost. |
| LIST PRICE | The product’s list price from the catalog. |
| ADJUSTED PRICE | The list price after the global adjustment. |
| FINAL PRICE | What the customer pays: the override if there is one, otherwise the adjusted price. Editable. |
| MARGIN % | (Final price − Cost) ÷ Final price. Editable when the product has a cost. |
| LAST UPDATED | When the product’s override last changed. A dash means the price is inherited. |
| History | Opens Change History for the product. Shown once the product has had an override. |
A dash in a money column means the product has no value there. The header’s Average Margin is Σ(Final price − Cost) ÷ Σ Final price across every product with both a cost and a final price; table filters do not change it. On a narrow screen each product is a card showing Final Price and Margin Percent, with Show More Details revealing Manufacturer, SKU, Cost, List Price, Adjusted Price and Last Updated.
Margin bands
Section titled “Margin bands”MARGIN % and Average Margin are shaded by band: Below cost, Under 10%, 10–25%, 25–40% and 40%+. The Margin band filter uses the same five labels, and the MARGIN % header shows the legend when you hover over it.
Validation messages
Section titled “Validation messages”Create Price List and Edit Price List
Section titled “Create Price List and Edit Price List”| Message | Meaning |
|---|---|
| Name is required | Name is empty. |
| Value is required | Default Adjustment is Margin (%) or Percent Change (%) but the value is empty. |
| Margin must be 0% or more | The margin is negative. |
| Margin must be below 100% | The margin is 100 or more. |
| Percent change must be between -100% and 1000% | The percent is outside that range. |
| Basis is required | Percent Change (%) needs Based On. |
Values are kept to two decimal places. If the name is already taken, the error shows under Name when you save. If saving fails for another reason, the toast reads Couldn’t create price list. Please try again. or Couldn’t save price list. Please try again.
Apply Pricing
Section titled “Apply Pricing”Method is required, Value is required and Basis is required, plus the same margin and percent-change bounds as above. Final Price must be 0 or more.
Editing a cell
Section titled “Editing a cell”These appear as an error toast with a Dismiss button.
| Message | Meaning |
|---|---|
| Enter a number. | The value is not a plain number such as 19.99. |
| Final price must be 0 or more. | The final price is negative. |
| Margin must be 0% or more | The margin is negative. |
| Margin must be below 100% | The margin is 100 or more. |
A final price is rounded to the cent before it is saved: 1.005 becomes 1.01.
Confirmation dialogs
Section titled “Confirmation dialogs”Some products can’t be priced
Section titled “Some products can’t be priced”Appears when you save a global adjustment that cannot produce a price for every product, for example a margin on a product with no cost. It reads This adjustment can’t compute a price for 3 products. You can apply it anyway and price them later. (with the count). Apply anyway saves the price list; those products keep no computed price until you set one. Cancel returns to the dialog. If the check itself fails, the toast reads Couldn’t check products for missing costs. Please try again.
Confirm large price change
Section titled “Confirm large price change”Appears when an edit in the price table, or clearing an override, would move a product’s final price by more than 25%. With several rows selected, it appears once for the largest change in the batch. It reads This changes the final price from $150.00 to $50.00 (-66.7%). Continue? (with your values; the percentage shows a dash when the old price is $0.00). Confirm change applies the edit; Cancel keeps the current price. The Apply Pricing dialog and the CSV import do not show this dialog.
Unassign Company From Price List?
Section titled “Unassign Company From Price List?”Appears when you click Unassign on the Company Assignments tab. It reads Brightwater Contracting will no longer receive this price list’s prices. (with the company’s name). Unassign Company removes the link; Cancel keeps it.
Discard unsaved changes?
Section titled “Discard unsaved changes?”Appears when you close Create Price List, Edit Price List or Apply Pricing with unsaved edits. It reads Your changes will be lost if you leave without saving. Discard closes the dialog without saving.
CSV export
Section titled “CSV export”Export on the Products tab downloads <price-list-name>-pricing.csv, where the name is lower-cased with anything that is not a letter or digit replaced by a hyphen, for example contractor-standard-pricing.csv. The file contains the products matching the current search and filters, in any status, in these columns:
| Column | Content |
|---|---|
Product ID |
The product identifier. |
Product Name |
The product name. |
Manufacturer |
The manufacturer. |
SKU |
The SKU. |
Status |
The product status. |
Cost |
The cost, blank when unknown. |
List Price |
The list price, blank when unknown. |
Adjusted Price |
Only present when the price list has a global adjustment. |
Final Price |
The final price. |
Override Price |
The fixed override price. Blank for inherited prices and for margin or percent-change overrides. |
Margin % |
The margin to one decimal place. |
Price State |
Override or Inherited. |
Text values are quoted, and a value that starts with a character a spreadsheet would read as a formula is prefixed with an apostrophe.
CSV import
Section titled “CSV import”Template
Section titled “Template”Download template in the Import Prices dialog saves price-list-import-template.csv:
SKU,Override PriceEXAMPLE-SKU-001,19.99EXAMPLE-SKU-002,File rules
Section titled “File rules”- The file must be a
.csvno larger than 2 MB, with at most 2000 rows. - The header must contain the columns SKU and Override Price. Column names are matched regardless of case, and the columns can be in any order.
- A price is a plain number such as
19.99: digits and a decimal point, with an optional leading sign. Negative prices are rejected. - Every imported row becomes a fixed-price override and replaces any existing override on that product, including margin and percent-change overrides.
How each row is handled
Section titled “How each row is handled”| Outcome | Rule shown in the dialog | Reason shown under Not imported |
|---|---|---|
| Imported | SKU matches a product and the price is a number like 19.99 | |
| Rejected | SKU doesn’t match a product, or the product is Deleted | Unknown or deleted product |
| Rejected | SKU appears more than once | Appears more than once |
| Rejected | Price isn’t a number like 19.99, or is negative | Invalid price |
| Skipped | Price is blank | |
| Skipped | Product is Discontinued |
The Not imported table lists each rejected row’s Row, SKU and Reason, sorts by any of them, and Download report saves the rejected rows as rejected-rows.csv.
File-level messages
Section titled “File-level messages”| Message | Meaning |
|---|---|
| Only .csv files are accepted. | The file’s extension is not .csv. |
| File exceeds the 2 MB limit. | The file is larger than 2 MB. |
| The file must have ‘SKU’ and ‘Override Price’ columns. | One or both header columns are missing. |
| An import file may contain at most 2000 rows. | The file has more than 2000 rows. |
Result
Section titled “Result”The toast reads Imported 2 rows (with the count) or Imported 2 rows, 2 skipped when some rows were rejected or skipped. If nothing could be imported, the Import button stays disabled.
Messages on quotes and sales orders
Section titled “Messages on quotes and sales orders”The Pricelist field on a quote or sales order shows these hints and toasts.
| Message | Meaning |
|---|---|
| Cannot apply pricelist - Company pricelist Contractor Standard is in Draft (or is Archived) | The company’s price list is not Active, so the lines are priced from Catalog Pricing. |
| Cannot apply pricelist - Contractor Standard is in Draft | You picked a price list that is not Active. Shown as a toast. |
| Preferred Customer no longer applies to this company. Future prices will be based on Catalog Pricing. | The saved price list is no longer the company’s Active price list. |
| The pricelist saved on this quote no longer applies. Future prices will be based on Catalog Pricing. (or on this sales order) | The saved price list could not be matched to the company at all. |
| Could not look up prices. Please try again. | The price lookup failed; nothing on the form changed. |
| Could not check the quote’s pricelist. Please try again. (or the sales order’s pricelist) | The check on reopening failed. |
Each message shows the price list’s name in place of the examples above.