# Wholesale distributors: order tracking using Next.js

## Summary
A order tracking blueprint for wholesale distributors built with Next.js on Ample. Domain schema: products (sku, name, category, case_size, list_price, active): SKU catalog with case sizes; stock_movements (sku, warehouse, delta, reason, moved_at): receipts, picks and adjustments; orders (order_no, account_reference, status, placed_at): trade orders with status transitions; order_lines (order_no, sku, cases, unit_price): order contents; events (seq, record_type, record_id, kind, at): application-owned history written in the same transaction. Public information: catalog with case sizes, minimum order and delivery terms, trade account application. Kept out of scope until handling is reviewed: account pricing tiers, credit terms, delivery addresses. Account-specific pricing and credit terms are confidential; the catalog shown publicly carries list prices only.

## Representative Queries
- Wholesale distributors: order tracking using Next.js
- Where can I host Wholesale distributors: Order tracking built with Next.js?
- I need a genuinely specialized order tracking workflow covering case-pack units, B2B catalog visibility and volume order imports.

## Resource Requirements
- primitive:compute
- primitive:postgres
- primitive:s3-compatible-object-storage

## Infrastructure Requirements
1. **Compute**
   - Status: verified  
   - Summary: Apps run in isolated x86_64 Firecracker microVMs that auto-pause when idle and wake on request; sizes are the priced VM sizes.

2. **Postgres**
   - Status: verified  
   - Summary: Managed PostgreSQL 16 runs in its own microVM and is auto-provisioned when an app needs a database and no DATABASE_URL is supplied.

3. **S3-compatible object storage**
   - Status: verified  
   - Summary: Buckets are S3-compatible with issued credentials; PutObject and GetObject are verified by canary. Other S3 operations are not verified.

## Workflow Steps
1. Model the wholesale distributors domain
   - Create the tables products, stock_movements, orders, order_lines, events. Sku catalog with case sizes lives in products; keep the sensitive classes (account pricing tiers, credit terms, delivery addresses) out of this schema.
2. Workflow step 1
   - Model orders with explicit status transitions and order lines
3. Workflow step 2
   - Apply status changes transactionally and record an event per change
4. Workflow step 3
   - Expose status history to authorized callers only
5. Workflow step 4
   - Deploy and verify history and conflict rejection
6. **Deploy**  
   Run the synchronous deploy once and read the result. Re-running with no change is a no-op.
   ```bash
   ample deploy . --name  --public --env S3_ENDPOINT=... --env S3_REGION=... --env S3_BUCKET=... --env S3_ACCESS_KEY_ID=... --env S3_SECRET_ACCESS_KEY=...  
   ```
7. **Verify**  
   Run the pattern self-test(s) from the example (/p/transactional-workflows) and your own acceptance checks for the wholesale distributors workflow.
   ```bash
   ample logs  --kind build
   ```

## Examples
- **Next.js pattern fixture**: Verified transactional workflows basis for this blueprint.

## Success Checks
1. App responds on its public URL
   - Expect: ample canary next js patterns
2. transactional-workflows self-test from the example
   - Expect: see the pattern fixture checks

## Limitations
- The technical basis (transactional workflows on Next.js) was verified with the pattern fixture; the wholesale distributors schema and workflow are an original design for this blueprint and were not executed as a separate application.
- No health, financial, privacy or other compliance claim is made. Account-specific pricing and credit terms are confidential; the catalog shown publicly carries list prices only.
- Public content and synthetic examples only until actual data-handling requirements have been reviewed.
- Verified on the node-22 template at s-1vcpu-1gb; region, request-duration limits and other sizes are unknown or unverified.
- Managed PostgreSQL 16 only; extensions, connection limits and backup or restore procedures are not verified.
- PutObject and GetObject with path-style addressing are verified; other S3 operations and CDN cache rules are not.

## Cost Estimate
- **Currency**: USD
- **Monthly Amount**: 10.0
- **Basis**: size prices from pricing.toml (loaded by the API) at build revision 1ac5595375130d45290090e82ed0f554ccd45405-dirty

### Components
1. **App server**
   - Size: s-1vcpu-1gb
   - Quantity: 1.0
   - Monthly Amount: 5.0
2. **Managed PostgreSQL database**
   - Size: s-1vcpu-1gb
   - Quantity: 1.0
   - Monthly Amount: 5.0

### Note
Always-on monthly price of the tested sizes; apps and databases auto-pause when idle. Buckets are allocation-priced per quota and not included.
