URS-032 · Traceability for product lots, shipments, and inventory movements
Title: Traceability for product lots, shipments, and inventory movements Date: 2026-08-03T23:03:22.458Z Duration: 231.0s Overall Status: ✅ PASS
User Requirement
Section titled “User Requirement”The system shall maintain traceability for product lots, shipments, and inventory movements.
Source: User_Requirement_Specifications_Vantis_DeviceFlow.xlsx — the run below proves the system meets this requirement.
Environment
Section titled “Environment”- Inbox URL: http://localhost:34967
- Database: localhost:46337/cc_repinbox_dev
Status: ✅ PASS
Test Steps
Section titled “Test Steps”Each step below corresponds to one Playwright test that ran sequentially. Screenshots and video recordings provide visual evidence of the UI behaviour.
1. Step 1: Lot traceability details — ✅ PASS
Section titled “1. Step 1: Lot traceability details — ✅ PASS”What this step proves:
The lot-controlled product NEURO-DEVICE-001 (an implantable device) carries lot policy “approved” with a controlled allowed-lot list (LOT-2025-001234 for the warehouse, LOT-2025-005678 for the trunk), establishing that lots are first-class, controlled data on the product.
Screenshots:

Video recording:
2. Step 2: Catalog & account — ✅ PASS
Section titled “2. Step 2: Catalog & account — ✅ PASS”What this step proves:
The product-catalog entry has billing and ordering enabled, and the ROSS sales account carries effective approved pricing plus the “holds owned stock” setting that makes it eligible for direct orders and hospital-stock bill-only orders.
Screenshots:


Video recording:
3. Step 3: Baseline inventory — ✅ PASS
Section titled “3. Step 3: Baseline inventory — ✅ PASS”What this step proves:
The warehouse lot LOT-2025-001234 is on hand at the Main Warehouse (ROSS-001) before any order activity — the baseline that makes the later increase and decrease conclusively attributable to the order flows.
Screenshots:

Video recording:
4. Step 4: Create direct order — ✅ PASS
Section titled “4. Step 4: Create direct order — ✅ PASS”What this step proves:
A Corveta sales rep orders the product for the ROSS account. Because the account holds owned stock, the order is created as a DIRECT order.
Audit events generated by this step:
(Evidence scoped to step execution window: 2026-08-03T23:03:58.697Z → 2026-08-03T23:04:05.598Z)
| Time | Type | Action | User | Org | Performed |
|---|---|---|---|---|---|
| 2026-08-03 23:04:05Z | checklist | checklists.create | blair.bennett@corvetasurgical.com | Vantis | — |
| 2026-08-03 23:04:05Z | decision | order_request_created | blair.bennett@corvetasurgical.com | Vantis | yes |
Screenshots:



Video recording:
5. Step 5: Approve order — ✅ PASS
Section titled “5. Step 5: Approve order — ✅ PASS”What this step proves:
The manufacturer approves the order, creating the fulfillment order. The order detail lists the product but shows no lot yet — lots are stamped by the warehouse at shipment time. The “Direct Order Created” notification email names the product being fulfilled.
Audit events generated by this step:
(Evidence scoped to step execution window: 2026-08-03T23:04:15.220Z → 2026-08-03T23:04:22.551Z)
| Time | Type | Action | User | Org | Performed |
|---|---|---|---|---|---|
| 2026-08-03 23:04:15Z | fulfillment_order | status_change | alex.admin@vantismedical.com | Vantis | — |
| 2026-08-03 23:04:15Z | fulfillment_order | status_change | alex.admin@vantismedical.com | Vantis | — |
| 2026-08-03 23:04:15Z | decision | extensiv_order_push.skipped | — | Vantis | no |
| 2026-08-03 23:04:15Z | decision | tickets.checklist_item_resolve.auto_resolve_ticket | — | Vantis | no |
| 2026-08-03 23:04:17Z | transactional_email | direct_order_created | — | Corveta Surgical Group | — |
Emails triggered by this step:
(Evidence matched by declared name — step timing not available or no events fell in window)
Email 1: Direct Order Created - OR-1-FO-1
Template: Direct_Order_Created_-_OR-1-FO-1

Screenshots:


Video recording:
6. Step 6: Import shipping notice — ✅ PASS
Section titled “6. Step 6: Import shipping notice — ✅ PASS”What this step proves:
The warehouse ASN is imported through the real /packages/upload pipeline: the notice lists the product SKU with its lot (LOT-2025-001234) against the fulfillment order number, with carrier “demo” and a magic DFX tracking number that simulates the carrier feed.
Audit events generated by this step:
(Evidence scoped to step execution window: 2026-08-03T23:05:06.034Z → 2026-08-03T23:05:11.073Z)
| Time | Type | Action | User | Org | Performed |
|---|---|---|---|---|---|
| 2026-08-03 23:05:08Z | decision | recalculate_order_status | — | Vantis | yes |
| 2026-08-03 23:05:08Z | fulfillment_order | status_change | — | Vantis | — |
Screenshots:


Video recording:
7. Step 7: Lot pages — ✅ PASS
Section titled “7. Step 7: Lot pages — ✅ PASS”What this step proves:
The imported lot is now traceable across the chain: the shipping package detail (the lot on the shipped item, against the fulfillment order number) and the fulfillment order detail (the SKU with its shipped lot, “NEURO-DEVICE-001: LOT LOT-2025-001234”), for the same order request.
Screenshots:



Video recording:
8. Step 8: Delivery & inventory increase — ✅ PASS
Section titled “8. Step 8: Delivery & inventory increase — ✅ PASS”What this step proves:
The demo tracking sequence delivers the package through the same handler a real carrier webhook uses, firing the auto-add-inventory hook: the warehouse lot rises by exactly the shipped quantity, proving received direct-order stock increases inventory with the correct lot.
Screenshots:


Video recording:
9. Step 9: Bill-only lot entry — ✅ PASS
Section titled “9. Step 9: Bill-only lot entry — ✅ PASS”What this step proves:
The bill-only form asks for a lot for the tracked product and validates it: continuing without a lot is rejected, and the dropdown offers only the product’s approved lots. The order is submitted with LOT-2025-001234 sourced from the ROSS (Hospital Stock) inventory.
Audit events generated by this step:
(Evidence scoped to step execution window: 2026-08-03T23:05:51.958Z → 2026-08-03T23:06:02.829Z)
| Time | Type | Action | User | Org | Performed |
|---|---|---|---|---|---|
| 2026-08-03 23:06:00Z | billing_order | status_change | blair.bennett@corvetasurgical.com | Vantis | — |
| 2026-08-03 23:06:00Z | decision | bill_only.link_purchase_order | blair.bennett@corvetasurgical.com | Corveta Surgical Group | no |
| 2026-08-03 23:06:00Z | decision | bill_only_order.inventory_items_decrement | blair.bennett@corvetasurgical.com | Vantis | yes |
| 2026-08-03 23:06:00Z | decision | bill_only_order.direct_po_import_on_create | blair.bennett@corvetasurgical.com | Vantis | no |
| 2026-08-03 23:06:01Z | transactional_email | new_bill_only | — | Corveta Surgical Group | — |
Screenshots:




Video recording:
10. Step 10: Bill-only lots & decrement — ✅ PASS
Section titled “10. Step 10: Bill-only lots & decrement — ✅ PASS”What this step proves:
The submitted bill-only order shows the product line with its lot, and the same lot decrements at the same location — consuming the exact unit the direct order delivered, which closes the warehouse traceability loop.
Screenshots:


Video recording:
11. Step 11: Trunk bill-only — ✅ PASS
Section titled “11. Step 11: Trunk bill-only — ✅ PASS”What this step proves:
A second bill-only order sources the product from Blair’s trunk using the OTHER approved lot (LOT-2025-005678). Unlike hospital stock, trunk-sourced orders bill the facility, so this order produces the notification emails that evidence the lot, and the trunk lot decrements at TRUNK-36.
Audit events generated by this step:
(Evidence scoped to step execution window: 2026-08-03T23:06:31.237Z → 2026-08-03T23:06:37.050Z)
| Time | Type | Action | User | Org | Performed |
|---|---|---|---|---|---|
| 2026-08-03 23:06:33Z | decision | bill_only_order.inventory_items_decrement | blair.bennett@corvetasurgical.com | Vantis | yes |
| 2026-08-03 23:06:33Z | decision | bill_only_order.direct_po_import_on_create | blair.bennett@corvetasurgical.com | Vantis | no |
| 2026-08-03 23:06:33Z | billing_order | status_change | blair.bennett@corvetasurgical.com | Vantis | — |
| 2026-08-03 23:06:33Z | decision | bill_only.link_purchase_order | blair.bennett@corvetasurgical.com | Corveta Surgical Group | no |
| 2026-08-03 23:06:34Z | transactional_email | new_bill_only | — | Corveta Surgical Group | — |
Emails triggered by this step:
(Evidence matched by declared name — step timing not available or no events fell in window)
Email 1: New Bill-Only Order - 8/3/2026 - Vantis BO-2
Template: New_Bill-Only_Order_-_8_3_2026_-_Vantis_BO-2

Email 2: New Bill-Only Order - 8/3/2026 - Vantis BO-3
Template: New_Bill-Only_Order_-_8_3_2026_-_Vantis_BO-3

Screenshots:


Video recording:
12. Step 12: DOF notification email — ✅ PASS
Section titled “12. Step 12: DOF notification email — ✅ PASS”What this step proves:
The manufacturer sends the Delivered Order Form notification from the bill-only detail page. The DOF email renders the product line with its lot number, proving the lot flows into outbound notifications.
Audit events generated by this step:
(Evidence scoped to step execution window: 2026-08-03T23:06:46.372Z → 2026-08-03T23:06:57.923Z)
| Time | Type | Action | User | Org | Performed |
|---|---|---|---|---|---|
| 2026-08-03 23:06:48Z | transactional_email | bill_only_dof_generated | — | Corveta Surgical Group | — |
Emails triggered by this step:
(Evidence matched by declared name — step timing not available or no events fell in window)
Email 1: Delivered Order - 8/3/2026 - Vantis BO-3
Template: Delivered_Order_-_8_3_2026_-_Vantis_BO-3

Screenshots:


Video recording:
13. Step 13: Inventory movement history — ✅ PASS
Section titled “13. Step 13: Inventory movement history — ✅ PASS”What this step proves:
The movements are recorded as a first-class audit trail: inventory-transaction and inventory-history rows for the product — the ASN receipt (+1) and the two bill-only decrements (−1 each) — each with a quantity, a timestamp, a location, and the user who caused it, rendered here directly from the database rows.
Screenshots:

Video recording:
14. Step 14: Comprehensive lot traceability — ✅ PASS
Section titled “14. Step 14: Comprehensive lot traceability — ✅ PASS”What this step proves:
A single consolidated view ties the pillars together for the product: the direct order that received the lot, the shipment that carried it, current inventory by lot/location, and every recorded inventory movement — the end-to-end traceability the requirement demands.
Screenshots:

Video recording:
15. Step 15: Cross-user visibility — ✅ PASS
Section titled “15. Step 15: Cross-user visibility — ✅ PASS”What this step proves:
An admin user (full visibility) opens the same warehouse inventory and sees the identical lot, quantity, and movement — confirming the traceability data is consistent across users.
Screenshots:

Video recording:
Database Validations
Section titled “Database Validations”The following SQL queries ran against the application database after the Playwright scenarios completed. Each query asserts a specific condition that proves the feature under test persisted its data correctly.
Product is lot-controlled (policy approved) with a controlled allowed-lot list — ✅ PASS
Section titled “Product is lot-controlled (policy approved) with a controlled allowed-lot list — ✅ PASS”Assertion: NEURO-DEVICE-001 has lot_policy ‘approved’ and allows exactly LOT-2025-001234, LOT-2025-005678
SELECT p.sku, p.lot_policy, array_agg(al.lot_value ORDER BY al.lot_value) AS lots FROM org_products p JOIN org_product_allowed_lots al ON al.org_product_id = p.id WHERE p.id = $1 GROUP BY p.id, p.sku, p.lot_policy| sku | lot_policy | lots |
|---|---|---|
| NEURO-DEVICE-001 | approved | ["LOT-2025-001234","LOT-2025-005678"] |
Direct order for the product is approved and produced a fulfillment order — ✅ PASS
Section titled “Direct order for the product is approved and produced a fulfillment order — ✅ PASS”Assertion: A direct-type order request for the product is approved with a fulfillment order
SELECT orq.request_number, orq.order_type, orq.status, fo.order_number FROM order_requests orq JOIN order_request_items ori ON ori.order_request_id = orq.id AND ori.product_id = $1 LEFT JOIN fulfillment_orders fo ON fo.order_request_id = orq.id WHERE orq.notes LIKE $2| request_number | order_type | status | order_number |
|---|---|---|---|
| OR-1 | direct | approved | OR-1-FO-1 |
Delivered ASN package carries the SKU + warehouse lot, linked to the fulfillment order — ✅ PASS
Section titled “Delivered ASN package carries the SKU + warehouse lot, linked to the fulfillment order — ✅ PASS”Assertion: Package item = NEURO-DEVICE-001/LOT-2025-001234, carrier demo, status delivered
SELECT sp.status, sp.carrier, spi.info->>'sku' AS sku, spi.info->>'lot' AS lot, spi.quantity FROM shipping_packages sp JOIN shipping_package_items spi ON spi.package_id = sp.id JOIN shipping_package_fulfillment_orders spfo ON spfo.shipping_package_id = sp.id JOIN fulfillment_orders fo ON fo.id = spfo.fulfillment_order_id JOIN order_requests orq ON orq.id = fo.order_request_id WHERE orq.notes LIKE $1| status | carrier | sku | lot | quantity |
|---|---|---|---|---|
| delivered | demo | NEURO-DEVICE-001 | LOT-2025-001234 | 1 |
Warehouse lot returned to baseline after +1 (ASN delivery) and −1 (bill-only) — ✅ PASS
Section titled “Warehouse lot returned to baseline after +1 (ASN delivery) and −1 (bill-only) — ✅ PASS”Assertion: Warehouse lot LOT-2025-001234 ends at 10
SELECT SUM(quantity_ready)::int AS on_hand FROM inventory_items WHERE real_world_location_id = $1 AND product_id = $2 AND lot = $3| on_hand |
|---|
| 10 |
Trunk lot decremented for the billable trunk-sourced bill-only order — ✅ PASS
Section titled “Trunk lot decremented for the billable trunk-sourced bill-only order — ✅ PASS”Assertion: Trunk lot LOT-2025-005678 ends at 4
SELECT SUM(quantity_ready)::int AS on_hand FROM inventory_items WHERE real_world_location_id = $1 AND product_id = $2 AND lot = $3| on_hand |
|---|
| 4 |
Bill-only orders carry the product line with the warehouse and trunk lots — ✅ PASS
Section titled “Bill-only orders carry the product line with the warehouse and trunk lots — ✅ PASS”Assertion: Bill-only line items exist for lots LOT-2025-001234 and LOT-2025-005678
SELECT boi.lot_number FROM billing_order_items boi WHERE boi.product_id = $1 AND boi.lot_number = ANY($2) ORDER BY boi.lot_number| lot_number |
|---|
| LOT-2025-001234 |
| LOT-2025-005678 |
Both bill-only orders recorded inventory transactions (source_type bill_only_order) — ✅ PASS
Section titled “Both bill-only orders recorded inventory transactions (source_type bill_only_order) — ✅ PASS”Assertion: Each bill-only order has a bill_only_order inventory transaction
SELECT it.source_type, it.source_id FROM inventory_transactions it WHERE it.source_type = 'bill_only_order' AND it.source_id IN ( SELECT DISTINCT boi.billing_order_id FROM billing_order_items boi WHERE boi.product_id = $1)| source_type | source_id |
|---|---|
| bill_only_order | 019fc9e0-7d9b-700e-a987-5842236007ee |
| bill_only_order | 019fc9e0-fdf3-7125-9dbb-00e622c7a90f |
Inventory-history rows record the movements with user + timestamp — ✅ PASS
Section titled “Inventory-history rows record the movements with user + timestamp — ✅ PASS”Assertion: At least two movement rows exist (receipt + decrements), each with a timestamp; movements are attributed to users
SELECT ih.quantity, ih.status, ih.changed_by, ih.created_at, ii.lot FROM inventory_history ih JOIN inventory_items ii ON ii.id = ih.item_id WHERE ii.product_id = $1 ORDER BY ih.created_at ASC| quantity | status | changed_by | created_at | lot |
|---|---|---|---|---|
| 1 | ready | NULL | 2026-08-03T23:05:28.132Z | LOT-2025-001234 |
| 1 | ready | 17b8c9d0-e1f2-3456-1234-567890123456 | 2026-08-03T23:06:00.432Z | LOT-2025-001234 |
| 1 | ready | 17b8c9d0-e1f2-3456-1234-567890123456 | 2026-08-03T23:06:33.296Z | LOT-2025-005678 |
Direct Order Created email names the product — ✅ PASS
Section titled “Direct Order Created email names the product — ✅ PASS”Assertion: Captured email contains: NEURO-DEVICE-001
Email HTML inspection: a /Direct_Order_Created/ capture must contain NEURO-DEVICE-001| file | matched |
|---|---|
| 2026-08-03T23-04-17-378Z-Direct_Order_Created_-_OR-1-FO-1.html | true |
New Bill-Only email carries the trunk lot — ✅ PASS
Section titled “New Bill-Only email carries the trunk lot — ✅ PASS”Assertion: Captured email contains: NEURO-DEVICE-001, LOT-2025-005678
Email HTML inspection: a /New_Bill-Only_Order/ capture must contain NEURO-DEVICE-001, LOT-2025-005678| file | matched |
|---|---|
| 2026-08-03T23-06-01-191Z-New_Bill-Only_Order_-8_3_2026-_Vantis_BO-2.html | false |
| 2026-08-03T23-06-34-265Z-New_Bill-Only_Order_-8_3_2026-_Vantis_BO-3.html | true |
Delivered Order (DOF) email carries the trunk lot — ✅ PASS
Section titled “Delivered Order (DOF) email carries the trunk lot — ✅ PASS”Assertion: Captured email contains: NEURO-DEVICE-001, LOT-2025-005678
Email HTML inspection: a /Delivered_Order/ capture must contain NEURO-DEVICE-001, LOT-2025-005678| file | matched |
|---|---|
| 2026-08-03T23-06-48-805Z-Delivered_Order_-8_3_2026-_Vantis_BO-3.html | true |
Audit & Email Assertion Ledger
Section titled “Audit & Email Assertion Ledger”Per-declaration outcome of every expectedAuditActions and expectedEmailTemplates entry written into the orchestrator. Missing evidence here is a real test failure, not a soft warning.
Email Template Assertions
Section titled “Email Template Assertions”Each row asserts that a declared expectedEmailTemplates entry was matched (case-insensitive substring) by a captured email subject or template. A ❌ flips overall status to FAIL.
| Step | Expected Template | Found |
|---|---|---|
| Step 5: Approve order | Direct Order Created | ✅ |
| Step 11: Trunk bill-only | New Bill-Only Order | ✅ |
| Step 12: DOF notification email | Delivered Order | ✅ |
Audit Log Events
Section titled “Audit Log Events”Every row written to audit_events while this test was running (scoped to the demo organizations). Provides compliance evidence that user actions are traced end-to-end (URS-003).
Capture window start: 2026-08-03T23:03:20.604Z
SELECT ae.created_at, ae.event_type, ae.action, ae.user_id, u.email AS user_email, ae.organization_id, o.name AS organization_name, ae.object_id, ae.secondary_object_id, ae.payload, ae.route, ae.trace_id FROM audit_events ae LEFT JOIN users u ON u.id = ae.user_id LEFT JOIN organizations o ON o.id = ae.organization_id WHERE ae.created_at >= $1 AND ae.organization_id = ANY($2::uuid[]) ORDER BY ae.created_at ASC38 event(s) captured:
| Time | Type | Action | User | Org | Object ID | Performed | Reason |
|---|---|---|---|---|---|---|---|
| 2026-08-03 23:03:21Z | checklist | checklists.create | — | Corveta Surgical Group | 019fc9de-0f5a-79f9-bb52-3da308353ec2 | — | |
| 2026-08-03 23:03:21Z | decision | ensure_lot_expiration_checklist | — | Corveta Surgical Group | b2c3d4e5-f6a7-8901-bcde-f12345678901 | yes | created_1_reopened_0_already_open_1 |
| 2026-08-03 23:03:25Z | user_log | user:login | alex.admin@vantismedical.com | Vantis | — | — | |
| 2026-08-03 23:03:32Z | user_log | user:login | alex.admin@vantismedical.com | Vantis | — | — | |
| 2026-08-03 23:03:41Z | user_log | user:login | alex.admin@vantismedical.com | Vantis | — | — | |
| 2026-08-03 23:03:46Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — | — | |
| 2026-08-03 23:04:05Z | checklist | checklists.create | blair.bennett@corvetasurgical.com | Vantis | 019fc9de-bc29-7bc7-8afa-9bded8e697bb | — | |
| 2026-08-03 23:04:05Z | decision | order_request_created | blair.bennett@corvetasurgical.com | Vantis | 019fc9de-bc12-7d0a-991b-2593c7949fd0 | yes | Order request OR-1 created (importSource=manual) |
| 2026-08-03 23:04:07Z | user_log | user:login | alex.admin@vantismedical.com | Vantis | — | — | |
| 2026-08-03 23:04:15Z | fulfillment_order | status_change | alex.admin@vantismedical.com | Vantis | 019fc9de-e52f-7b70-9db0-117fd0f4efa0 | — | Order automatically submitted for fulfillment |
| 2026-08-03 23:04:15Z | fulfillment_order | status_change | alex.admin@vantismedical.com | Vantis | 019fc9de-e52f-7b70-9db0-117fd0f4efa0 | — | Fulfillment order created from approved items |
| 2026-08-03 23:04:15Z | decision | extensiv_order_push.skipped | — | Vantis | 019fc9de-e52f-7b70-9db0-117fd0f4efa0 | no | wms_feature_flag_disabled |
| 2026-08-03 23:04:15Z | decision | tickets.checklist_item_resolve.auto_resolve_ticket | — | Vantis | 019fc9de-bc2d-7695-b80f-d9478374b639 | no | Checklist item is not linked to any ticket. |
| 2026-08-03 23:04:17Z | transactional_email | direct_order_created | — | Corveta Surgical Group | 019fc9de-e52f-7b70-9db0-117fd0f4efa0 | — | |
| 2026-08-03 23:04:56Z | user_log | user:login | alex.admin@vantismedical.com | Vantis | — | — | |
| 2026-08-03 23:05:08Z | decision | recalculate_order_status | — | Vantis | 019fc9de-bc12-7d0a-991b-2593c7949fd0 | yes | Shipping status updated from null to shipped |
| 2026-08-03 23:05:08Z | fulfillment_order | status_change | — | Vantis | 019fc9de-e52f-7b70-9db0-117fd0f4efa0 | — | All items shipped |
| 2026-08-03 23:05:13Z | user_log | user:login | alex.admin@vantismedical.com | Vantis | — | — | |
| 2026-08-03 23:05:22Z | user_log | user:login | alex.admin@vantismedical.com | Vantis | — | — | |
| 2026-08-03 23:05:28Z | decision | enable_team_tracked_inventory_routing | — | Corveta Surgical Group | 019fc9df-b0f3-771b-81d5-2be99534c24f | no | Package linked to direct order |
| 2026-08-03 23:05:28Z | decision | recalculate_order_status | — | Vantis | 019fc9de-bc12-7d0a-991b-2593c7949fd0 | yes | Shipping status updated from shipped to delivered |
| 2026-08-03 23:05:28Z | fulfillment_order | status_change | — | Vantis | 019fc9de-e52f-7b70-9db0-117fd0f4efa0 | — | All items delivered |
| 2026-08-03 23:05:35Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — | — | |
| 2026-08-03 23:06:00Z | billing_order | status_change | blair.bennett@corvetasurgical.com | Vantis | 019fc9e0-7d9b-700e-a987-5842236007ee | — | |
| 2026-08-03 23:06:00Z | decision | bill_only.link_purchase_order | blair.bennett@corvetasurgical.com | Corveta Surgical Group | 019fc9e0-7d9b-700e-a987-5842236007ee | no | no_purchase_order_selected |
| 2026-08-03 23:06:00Z | decision | bill_only_order.inventory_items_decrement | blair.bennett@corvetasurgical.com | Vantis | 019fc9e0-7d9b-700e-a987-5842236007ee | yes | inventory_items_decremented |
| 2026-08-03 23:06:00Z | decision | bill_only_order.direct_po_import_on_create | blair.bennett@corvetasurgical.com | Vantis | 019fc9e0-7d9b-700e-a987-5842236007ee | no | No uploaded PO documents |
| 2026-08-03 23:06:01Z | transactional_email | new_bill_only | — | Corveta Surgical Group | 019fc9e0-7d9b-700e-a987-5842236007ee | — | |
| 2026-08-03 23:06:04Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — | — | |
| 2026-08-03 23:06:11Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — | — | |
| 2026-08-03 23:06:33Z | decision | bill_only_order.inventory_items_decrement | blair.bennett@corvetasurgical.com | Vantis | 019fc9e0-fdf3-7125-9dbb-00e622c7a90f | yes | inventory_items_decremented |
| 2026-08-03 23:06:33Z | decision | bill_only_order.direct_po_import_on_create | blair.bennett@corvetasurgical.com | Vantis | 019fc9e0-fdf3-7125-9dbb-00e622c7a90f | no | No uploaded PO documents |
| 2026-08-03 23:06:33Z | billing_order | status_change | blair.bennett@corvetasurgical.com | Vantis | 019fc9e0-fdf3-7125-9dbb-00e622c7a90f | — | |
| 2026-08-03 23:06:33Z | decision | bill_only.link_purchase_order | blair.bennett@corvetasurgical.com | Corveta Surgical Group | 019fc9e0-fdf3-7125-9dbb-00e622c7a90f | no | no_purchase_order_selected |
| 2026-08-03 23:06:34Z | transactional_email | new_bill_only | — | Corveta Surgical Group | 019fc9e0-fdf3-7125-9dbb-00e622c7a90f | — | |
| 2026-08-03 23:06:39Z | user_log | user:login | alex.admin@vantismedical.com | Vantis | — | — | |
| 2026-08-03 23:06:48Z | transactional_email | bill_only_dof_generated | — | Corveta Surgical Group | 019fc9e0-fdf3-7125-9dbb-00e622c7a90f | — | |
| 2026-08-03 23:07:06Z | user_log | user:login | alex.admin@vantismedical.com | Vantis | — | — |
Email Evidence
Section titled “Email Evidence”4 notification email(s) were captured during this test run. Each email is rendered as a screenshot for compliance review.
1. Direct Order Created - OR-1-FO-1
Section titled “1. Direct Order Created - OR-1-FO-1”Template: Direct_Order_Created_-_OR-1-FO-1

2. New Bill-Only Order - 8/3/2026 - Vantis BO-2
Section titled “2. New Bill-Only Order - 8/3/2026 - Vantis BO-2”Template: New_Bill-Only_Order_-_8_3_2026_-_Vantis_BO-2

3. New Bill-Only Order - 8/3/2026 - Vantis BO-3
Section titled “3. New Bill-Only Order - 8/3/2026 - Vantis BO-3”Template: New_Bill-Only_Order_-_8_3_2026_-_Vantis_BO-3

4. Delivered Order - 8/3/2026 - Vantis BO-3
Section titled “4. Delivered Order - 8/3/2026 - Vantis BO-3”Template: Delivered_Order_-_8_3_2026_-_Vantis_BO-3

Downloads
Section titled “Downloads”- audit-events.json
- inventory-movement-history.html
- lot-traceability.html
- report.md
- result.json
- screenshots-index.json
- shipping-notice.csv
- step-timings.json