From 25dfb1b22ad5436fa85c59492523ad18ebdb04c9 Mon Sep 17 00:00:00 2001 From: Mike Swanson Date: Fri, 22 May 2026 12:08:31 -0700 Subject: [PATCH] sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-22 12:08:26 Author: Mike Swanson Machine: DESKTOP-0O8A1RL Timestamp: 2026-05-22 12:08:26 --- .claude/commands/syncro.md | 18 ++++++++++++++++++ .claude/memory/MEMORY.md | 1 + .../feedback_syncro_estimate_hardware.md | 12 ++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 .claude/memory/feedback_syncro_estimate_hardware.md diff --git a/.claude/commands/syncro.md b/.claude/commands/syncro.md index 1dcba7f..1d68235 100644 --- a/.claude/commands/syncro.md +++ b/.claude/commands/syncro.md @@ -636,6 +636,24 @@ curl -s -X DELETE "${BASE}/estimates/${ESTIMATE_ID}?api_key=${API_KEY}" **GET /estimates line_items vs POST response:** GET returns `line_items` as an array on `.estimate.line_items[]`. POST `/line_items` returns the line item under `.line_item` (singular, not nested under estimate). +**Hardware on estimates:** All hardware line items use a single generic product — `product_id: 32252` ("Hardware", `price_retail: 0.0`). The specific item name and price are set per-line-item via the `name` and `price_retail` fields on each line. Never look up a separate product ID for hardware items on estimates — always use `32252` and vary the description and price per item. + +```bash +# Example hardware line item on an estimate +curl -s -X POST "${BASE}/estimates/${ESTIMATE_ID}/line_items?api_key=${API_KEY}" \ + -H "Content-Type: application/json" \ + --data-binary @- <\*` directly. Hit on ASSISTMAN-PC 2026-05-08. - [Cascades — ask security group on user creation](feedback_cascades_user_security_group.md) — When creating any Cascades user, always ask which security group(s) they go in. Deliberate per-user decision; an OU→group auto-mirror was explicitly declined 2026-05-14. OU = sync scope; group = access/CA decision. diff --git a/.claude/memory/feedback_syncro_estimate_hardware.md b/.claude/memory/feedback_syncro_estimate_hardware.md new file mode 100644 index 0000000..3d3eb5b --- /dev/null +++ b/.claude/memory/feedback_syncro_estimate_hardware.md @@ -0,0 +1,12 @@ +--- +name: feedback_syncro_estimate_hardware +description: Hardware line items on Syncro estimates always use product_id 32252 with varying name/price per item +metadata: + type: feedback +--- + +All hardware on estimates uses a single generic product: `product_id: 32252` ("Hardware", `price_retail: 0.0`). The specific item name and cost are set per-line-item via the `name` and `price_retail` fields. Never search for individual hardware product IDs on estimates. + +**Why:** There is only one hardware product in Syncro. All hardware items are differentiated by description and price, not by product ID. + +**How to apply:** When building an estimate with hardware, always use `32252` as the product_id and set `name` to the specific item (e.g. "Dell OptiPlex 7010") and `price_retail` to the actual cost. Hardware is typically `taxable: true`.