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
This commit is contained in:
@@ -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 @- <<JSON
|
||||
{
|
||||
"product_id": 32252,
|
||||
"name": "Dell OptiPlex 7010 SFF",
|
||||
"description": "Refurbished desktop, 16GB RAM, 512GB SSD",
|
||||
"quantity": 1.0,
|
||||
"price_retail": 649.00,
|
||||
"taxable": true
|
||||
}
|
||||
JSON
|
||||
```
|
||||
|
||||
### Display formatting
|
||||
|
||||
When showing ticket lists, format as:
|
||||
|
||||
Reference in New Issue
Block a user