E-commerce pack
5 templates, one canonical shape each.
Catalog + transactions templates for storefront imports — orders, products, customers, inventory, returns.
GET /v1/templates
{
"packs": [
{
"id": "ecommerce",
"name": "E-commerce",
"template_count": 5
}
],
"templates": [
{ "id": "orders_v1", "risk": "low", "field_count": 9, "pack": "ecommerce" },
{ "id": "products_v1", "risk": "low", "field_count": 9, "pack": "ecommerce" },
{ "id": "customers_v1", "risk": "low", "field_count": 9, "pack": "ecommerce" },
…
]
}The templates
Every template in this pack, printed as it ships.
Canonical column names, field counts, validator ids and risk level — read straight from the shipped template definition. Paste the header row from your own export and the deterministic layers will show you, column by column, which of these 5 it lands on.
Nothing is uploaded. The match runs in this tab against the shipped template vocabulary, using the same normaliser and fuzzy scorer the Worker runs on layers 2 and 3.
Orders
lowPurchase orders: customer, total, status, shipping address, tax and discount.
id · customer_id · total · currency · status · +4
orders_v1ViewProducts
lowProduct catalog: SKU, GTIN, price, category, weight, stock flag.
gtinsku · name · description · price · currency · +4
products_v1ViewCustomers
lowRepeat e-commerce buyers: identity, contact, default shipping, lifetime stats.
emailphoneid · email · first_name · last_name · phone · +4
customers_v1ViewInventory
lowPer-SKU stock levels per location: on-hand, reserved, reorder point.
sku · location_id · on_hand · reserved · last_counted_at · +1
inventory_v1ViewReturns
lowReturn and refund records: order linkage, reason, amount, status.
id · order_id · customer_id · reason · amount · +3
returns_v1View- 5 templates
- 3 validators in this pack
- 107 header hints across 5 languages
- 41 canonical fields
Side by side
The whole pack as counted facts.
Same information the cards carry, in one scannable block — for the moment you are choosing between two templates that both look plausible. Every number is derived from the shipped definition at build time.
41 canonical columns and 107 distinct header hints across the pack. "Validated" counts columns carrying at least one field-level validator; "hints" counts the distinct multilingual header names the deterministic layers resolve for free.
Validators
The checks that fire before you commit.
3 validators run on this pack. They are pure functions — the same code runs in the Worker, in the browser widget and in the MCP validate_row tool, so a dry run and a commit cannot disagree.
| Validator | What it checks | Templates in this pack |
|---|---|---|
email | RFC-style address shape. | customers_v1 |
gtin | 8, 12, 13 or 14 digits with the GS1 trailing checksum. | products_v1 |
phone | libphonenumber-js in strict mode, with an optional country allowlist. | customers_v1 |
Empty values bypass a validator — required-ness is checked separately. LOINC / ICD-10 / ATC additionally try to resolve a free-text value to a canonical code before failing.
Review gating
Nothing in this pack needs a review gate.
A template's risk level is the only input to the flag. Medium and high templates make PATCH /uploads/:id/mappings return requires_hitl so your own workflow can hold the commit — it is a flag, not a queue. Native AgentGate HITL integration is on the roadmap for Q3 2026 and is not wired in v1.
Commits straight through. No review flag on the mappings response.
orders_v1 · products_v1 · customers_v1 · inventory_v1 · returns_v1
Flagged `requires_hitl: true` with `hitl_status: "pending_review"` so you can gate your own commit workflow.
Flagged `requires_hitl: true` with `hitl_status: "pending_review"`. Regulated identifiers — card data, IBANs, payroll, KYC.
Try it
One call maps a file onto any of them.
Name the template and POST the file. The cascade resolves what it can on the deterministic layers — statistics, heuristic, fuzzy — and only the leftovers reach the metered LLM.
curl -X POST https://api.adaptivmapr.com/v1/uploads \
-H "Authorization: Bearer $ADAPTIVMAPR_API_KEY" \
-F "template=orders_v1" \
-F "file=@your_export.csv"Schema-only mode sends column headers plus at most three sample rows, each clamped to 80 characters — a data-minimization mode enforced at the HTTP edge. Full-data mode routes the metered layer-5 call in-region under a BAA and costs 20% more, and stays locked until the workspace accepts the BAA/NDA in Settings → Security & Data.
Read the quickstart- orders_v1Orders9 fields
- products_v1Products9 fields
- customers_v1Customers9 fields
- inventory_v1Inventory6 fields
- returns_v1Returns8 fields
Ready when you are
Put the e-commerce pack to work — without shipping raw records.
Schema-only mode leaves only headers and up to three clamped sample rows. Full-data adds row-level AI, routed in-region under a BAA.