Skip to main content

Special Order List

📄️Update Special Order List

Update any of: `enabled`, `spreadsheet_id` (id or Sheets URL), `range` (tab), `brand_id`, `supplier_id` (the supplier linked to products created at checkout — and the supplier the cost tab's costs belong to), `note`, `preorder_min_subtotal`, `cost_range` (optional STAFF-ONLY cost tab, e.g. `internal`: a part # column + a 'Supplier cost'/'Cost' column; must differ from `range`, else 422; null/blank = no cost source), `supplier_pricing_tier_id` (the supplier pricing tier the cost is written to on a created product; null = the supplier's own default tier). Omitted keys are unchanged. With a cost tab set, checkout gives each product it creates a supplier price = the part's cost (once, at creation); a part with no cost is still created and the order is tagged 'Needs supplier cost'.

📄️Sync Special Order List

Sync now. 200 with the run's report (`sync.status` succeeded|failed + `message`); 409 when a sync is already running. A cost/supplier column in the portal range refuses the sheet. With a cost tab set, the same run reads it into a staff-only table: `sync.cost_status` (succeeded|failed, null = no cost tab), `costs_imported`, `cost_errors`, `cost_message`. A cost tab problem never fails the portal import and leaves stored costs unchanged. Counts only — no cost value is ever returned.