page:blueprints:wholesale distributors:inventory manager:django

Wholesale distributors: Inventory manager using Django

Summary

A inventory manager blueprint for wholesale distributors built with Django on Ample. Domain schema:

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.

Technical basis verified on Django: an optimistic version check and an event row written in the same transaction, a stale update rejected, and a history query over the application-owned events (history=2 conflict=rejected).

Representative Queries

Infrastructure Requirements

Prerequisites

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 SKUs and stock movements; derive stock from movements
  3. Workflow step 2: Apply movements transactionally with an optimistic version check on the SKU
  4. Workflow step 3: Record an event per movement for history
  5. Workflow step 4: Deploy and verify history and rejected stale updates
  6. Deploy: Run the synchronous deploy once and read the result. Re-running with no change is a no-op. Command: ample deploy . --name --public --start "python3 run.py" --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. Command: ample logs --kind build

Examples

Success Checks

Limitations