page:blueprints:wholesale distributors:order tracking:next js

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

Resource Requirements

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.
    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.
    ample logs  --kind build
    

Examples

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

Cost Estimate

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.