Skip to main content

Quick Quote Tool

This ~50-line tool demonstrates the full bridge loop for a standalone tool: read customers and products (now including sku), let the user build a quote, and submit via quotes.create.

Reference: Ziptrak Retail Estimator

This is the full reference implementation for a quoting_extension tool. It shows initBridge with skuIdMap, and collectQuoteLines with groupKey, productId, costPrice, unit, location, and specification.
This example uses the legacy productId field, which is now deprecated in favour of linkedItemId + lineType. The deprecated field still works (Ziptrak v2.1.2 is unchanged). For new tools, prefer the modern API:
  • Use lineType: "product" + linkedItemId: <sku-guid> for product lines (replaces productId).
  • Use lineType: "task" + linkedItemId: <task-template-guid> for explicit installation, removal, or service tasks. Resolve GUIDs from codes via taskTemplates.list.
  • Use lineType: "cost" + linkedItemId: <cob-item-guid> for shipping, travel, disposal, and other cost-of-business lines. Resolve GUIDs via costItems.list.
  • Tag every line with a section (e.g. "Blinds", "Installation", "Extras") — the host quote UI groups lines visually by section.
See quotes.addLines for the full field reference and a modern multi-line example.
manifest.json:
index.html (key JS excerpt):
What the Ziptrak example demonstrates:
  • manifest.json with type: "quoting_extension" so addLines is unlocked
  • initBridge() calls products.list({ pageSize: 500 }) and populates skuIdMap
  • collectQuoteLines() builds lines with:
    • groupKey ("blind-1", "blind-2") so blind + pelmet lines are grouped in the quote
    • productId resolved from skuIdMap for task template injection
    • productCode as the human-readable SKU
    • costPrice (wholesale) alongside unitPrice (retail) for real margin in the COB panel
    • unit: "T_ITEM" for per-blind lines (use "T_SQUARE_METRE" for fabric area charges)
    • location for the area/zone label and specification for dimensions and config detail