# Fieldnote Supply Shop

A six-product shop with linked customers, orders, order lines, captured payments and partial refunds.

All entities and transactions are fictional. Snapshot: 2026-09-08.

## Start with the linked model

1. Open operations.xlsx and review the Summary sheet. Source tables contain stable primary keys and declared references.
2. Change source values in the workbook to explore the calculated totals and editable chart.
3. Compare output values with expected-results.json. The JSON Schema checks types; primary-key uniqueness and joins also require the listed semantic checks.
4. Use invalid-records.json only in a local validation harness. Its three cases exercise duplicate keys, wrong types and an orphan reference.

## Included tables

| Table | Records | Primary key |
| --- | ---: | --- |
| products | 6 | product_id |
| customers | 6 | customer_id |
| orders | 12 | order_id |
| order_lines | 24 | line_id |
| payments | 12 | payment_id |
| variants | 12 | variant_id |
| discounts | 4 | discount_id |
| returns | 4 | return_id |
| merchandising | 6 | placement_id |

## Expected totals

- Gross item sales: 942.00 USD. Sum order_lines.line_total over the included records.
- Refunded amount: 80.00 USD. Sum payments.refunded over the included records.
- Orders: 12.00 records. Count unique order_id values in orders.

## Platform mapping

primary-records.csv is a generic example table. It is not a native platform export. Where this kit includes a named profile, use that profile’s separate CSV and schema and review its compatibility level before uploading.

Shopify and WooCommerce profile files use six simple products in draft status. Square is a mapping example: transfer the data into the current account-specific exported template.

## Scope and assumptions

- Products use USD amounts. Vendor profiles describe tested file specifications, not completed account imports.
