Product Costs: Defaults, Estimates, And Bulk Tools
The three product-level costs — Unit Cost, Landed Cost, and Dropship Unit Cost — read as Default Unit Cost, Default Landed Cost, and Default Dropship Unit Cost on the product sheet, the product detail, purchase orders, bulk edit, and the CSV import and export columns. The new name reflects how the value is used: a default that a supplier estimate can override, entered by a person, and blank if none has been set. Gross margin uses Default Landed Cost when it’s present and falls back to Default Unit Cost, so a product with only a unit cost still shows a margin figure.
The Pricing & Costs section on a product separates defaults from estimates. Default Unit Cost, Default Landed Cost, and Default Dropship Unit Cost sit in editable cards at the top. Below them, a Cost Estimates table lists every estimate — your own or from a supplier — with add, edit, duplicate, and archive on each row, a popover for the labor, materials, packaging, freight, and duties breakdown, and a way to promote a single value from an estimate straight to the matching default. Each estimate can carry an effective date, and Current, Scheduled, and Archived badges show what’s live, what’s queued to take over, and what’s been retired. An estimate no longer needs a supplier attached — the question “what should this cost to make?” is stored directly. Profitability at the top of the page is computed from MSRP and Default Landed Cost, falling back to Default Unit Cost if the landed value isn’t set. Completeness for a product accepts either the full stocked cost set or just the dropship unit cost, so a dropship-only product no longer needs a stocked cost to count as complete.
Product Cost Estimates now round-trip through CSV, supplier costs and internal estimates together. Imports create or update by SKU, supplier, cost type, and quantity tier, and carry lead times and cost breakdowns row for row. Row-level errors call out what did not import. Omitting a cost field leaves the current value alone; blanking it clears it. Unit cost is required and must be greater than zero, and effective date is a supported column. Exports respect the current filters on the Products page and produce a file that can be edited and re-imported directly. The Products list Import and Export actions have also been consolidated behind two menus, each opening a dialog that lets you pick Products, Product Cost Estimates, or Relationships. Command palette, table menu, and first-run empty state all point at the new dialog.