ShieldCert System - Sales and Outbound Operations Module — Software Requirements Specification (SRS)
Table of Contents
- 1 Document Information
- 2 Project Overview
- 3 User Requirements
- 4 Detailed Feature Requirements
- 5 Data Model
- 6 Business Rules
- 7 Integration Points
- 8 Sign Off
1 Document Information
| Field | Value |
|---|---|
| Project Name | ShieldCert System - Sales and Outbound Operations Module |
| Version | 1.0 |
| Date | 2025-12-22 |
| Project Manager | TBD |
| Tech Lead | TBD |
| Qa Lead | TBD |
| Platforms | ['Web'] |
| Document Status | Draft |
| Client | Paladin Envirotech |
| Document Code | SHIELDCERT-SALES-122025 |
2 Project Overview
2.1 What Are We Building
2.1.1 System Function
Comprehensive sales order creation, pricing management, outbound shipping, and fulfillment processes that handle the complete sales lifecycle from order creation through shipping completion, including purchase price assignment, asset valuation, shipping workflow, and carrier integration.
2.1.2 Users
- Value Recovery Team: Sales order creation, pricing, asset valuation
- Operations Staff: Outbound order fulfillment and shipping
- Warehouse Operators: Asset picking, pallet management, shipping preparation
- Accounting Team: Order approval and financial validation
- Sales Representatives: Customer relationship and order oversight
2.1.3 Problem Solved
Eliminates manual sales processes, automates pricing calculations for buyback and revenue share assets, provides real-time inventory visibility for sales, ensures accurate order fulfillment through barcode scanning, maintains complete shipping audit trails, and integrates with accounting systems for seamless financial processing.
2.1.4 Key Success Metric
100% accurate order fulfillment, 50% faster sales processing, automated pricing calculations, real-time inventory tracking, and seamless accounting integration with zero manual data entry.
2.2 Scope
2.2.1 In Scope
- Sales order dashboard with comprehensive filtering
- Sales order creation with customer and product selection
- Product line management with automated pricing
- Asset-specific sales with bulk upload capability
- Purchase price assignment for buyback and revenue share assets
- Outbound order creation and fulfillment workflow
- Shipping process with carrier integration
- Bill of Lading and packing list generation
- Post-shipment processing and status updates
2.2.2 Out Of Scope
- Real-time carrier tracking integration
- Automated shipping rate calculation
- Customer portal for order tracking
- Advanced pricing optimization algorithms
3 User Requirements
3.1 Sales Order Management
| Feature Code | I Want To | So That I Can | Priority | Notes |
|---|---|---|---|---|
| FT-SO-DASH | View all sales orders in a dashboard | Quickly see and manage all sales order information in one place | Must | Grid format with sorting, filtering, and key metrics display |
| FT-SO-CREATE | Create new sales orders with customer and shipping details | Record and process sales transactions accurately | Must | Includes sales order type, customer selection, and shipping addresses |
| FT-SO-PRODUCT-LINE | Add product lines to sales order using model numbers | Define items, quantities, pricing, and totals for the order | Must | Auto-populates product details and calculates totals |
| FT-SO-ASSET-SPECIFIC | Add products using specific asset numbers | Sell individual assets with accurate pricing | Must | Includes bulk upload capability and asset validation |
3.2 Pricing Management
| Feature Code | I Want To | So That I Can | Priority | Notes |
|---|---|---|---|---|
| FT-PRICE-BUYBACK | Add purchase prices for buyback assets | Properly value assets before marking them ready to sell | Must | Required before assets can be marked 'To Be Sold' |
| FT-PRICE-REVENUE | Assign purchase prices to revenue share assets | Calculate client payouts accurately | Must | Auto-calculates client payout using revenue share percentage |
3.3 Outbound Operations
| Feature Code | I Want To | So That I Can | Priority | Notes |
|---|---|---|---|---|
| FT-OB-DASH | View outbound orders dashboard | Manage all outbound orders and shipping status | Must | Shows orders ready for fulfillment and shipping |
| FT-OB-CREATE | Create outbound orders from sales orders | Initiate the shipping process for completed sales | Must | Auto-generates outbound order number (OT-YY-XXXX format) |
| FT-OB-FULFILL | Fulfill outbound orders through scanning and picking | Ensure accurate order fulfillment and shipping | Must | Barcode scanning validation and pallet assignment |
| FT-SHIPPING | Complete shipping process with carrier details | Generate shipping documents and update asset status | Must | BOL generation, carrier selection, and post-shipment processing |
3.4 Reporting
| Feature Code | I Want To | So That I Can | Priority | Notes |
|---|---|---|---|---|
| FT-SO-REPORTS | Print sales order reports with order lines and asset details | Review and share detailed order information | Should | Separate tabs for order lines and asset details |
4 Detailed Feature Requirements
4.1 Ft So Create
4.1.1 Priority
Must Have
4.1.2 User Story
As a Value Recovery team member, I want to create new sales orders so that I can record and process sales transactions accurately
4.1.3 Preconditions
User has Value Recovery permissions, customers and products exist in system
4.1.4 Postconditions
Sales order created with unique number (SO-YY-XXXX format), ready for product line addition
4.1.5 Acceptance Criteria
- Sales Order Type selection from dropdown (Sales, Donation, Redeployment, Recycle, Internal Order)
- Sales Channel selection from dropdown
- Currency selection (site-specific, required)
- Customer Name selection from accounts marked as Downstream or Customer
- Shipping Address selection from customer-associated addresses
- Incoterms selection from dropdown
- Shipment Method selection (required)
- Invoicing Address selection from customer-associated addresses
- Customer must be selected before address options display
- All required fields validated before saving
- System-generated sales order number: SO-YY-XXXX (year + sequence from 0001)
4.1.6 Test Cases
| Id | Description | Weight |
|---|---|---|
| SO-TC-001 | Verify sales order creation with all required fields | High |
| SO-TC-002 | Verify customer selection filters address options | High |
| SO-TC-003 | Verify sales order number generation in correct format | High |
| SO-TC-004 | Verify field validation prevents saving incomplete orders | High |
4.2 Ft Price Buyback
4.2.1 Priority
Must Have
4.2.2 User Story
As a Value Recovery Team member, I want to add purchase prices for buyback assets so that assets can be properly valued before they are marked as ready to be sold
4.2.3 Preconditions
Assets belong to buyback order, assets have been graded, user has pricing permissions
4.2.4 Postconditions
Purchase prices assigned, assets can be marked 'To Be Sold'
4.2.5 Acceptance Criteria
- Manual entry option for individual asset purchase price
- Upload functionality with template (Asset number, Purchase price)
- Asset must be graded before receiving purchase price
- Validation prevents pricing ungraded assets with appropriate error message
- Manager override allows pricing ungraded assets (logged for audit)
- Assets with purchase prices can be marked 'To Be Sold'
- System prevents status change without purchase price for buyback assets
- All pricing actions logged in audit trail
4.2.6 Test Cases
| Id | Description | Weight |
|---|---|---|
| PRICE-TC-001 | Verify manual purchase price entry for individual assets | High |
| PRICE-TC-002 | Verify bulk upload functionality with template | High |
| PRICE-TC-003 | Verify grading requirement validation | High |
| PRICE-TC-004 | Verify manager override capability and audit logging | Medium |
4.3 Ft Ob Fulfill
4.3.1 Priority
Must Have
4.3.2 User Story
As an operator, I want to fulfill outbound orders through scanning and picking so that I can ensure accurate order fulfillment and shipping
4.3.3 Preconditions
Outbound order created and marked ready for fulfillment, assets available for picking
4.3.4 Postconditions
Assets picked and assigned to shipping pallets, order ready for shipment
4.3.5 Acceptance Criteria
- Operator selects outbound order from dashboard
- System displays order details and asset requirements
- Barcode scanning for asset validation
- For product line orders: scanned asset model must match product line
- For asset-specific orders: scanned asset number must match exactly
- Container scanning option to fulfill multiple assets at once
- Shipping pallet selection and assignment
- Real-time display of picked vs. required quantities
- Order marked 'Ready to Be Shipped' when all assets picked
- Accounting approval required for pre-pay terms
- Status progression: Pending → Processing → Ready for Shipment → Awaiting Accounting Approval → Approved for Shipment → Shipped
4.3.6 Test Cases
| Id | Description | Weight |
|---|---|---|
| FULFILL-TC-001 | Verify asset scanning validation for product line orders | High |
| FULFILL-TC-002 | Verify exact asset matching for asset-specific orders | High |
| FULFILL-TC-003 | Verify container scanning for bulk fulfillment | Medium |
| FULFILL-TC-004 | Verify accounting approval workflow for pre-pay orders | High |
5 Data Model
5.1 Entities
5.1.1 Salesorder
5.1.1.1 Description
Core sales order information
5.1.1.2 Key Fields
- sales_order_id (Primary Key)
- sales_order_number (Unique: SO-YY-XXXX)
- sales_order_type
- sales_channel
- currency
- customer_id (Foreign Key)
- shipping_address_id (Foreign Key)
- invoicing_address_id (Foreign Key)
- incoterms
- shipment_method
- total_amount_sold
- total_cost
- total_quantity_sold
- sales_representative_id
- created_by
- created_date
- shipped_date
- status
5.1.2 Salesorderline
5.1.2.1 Description
Product lines within sales orders
5.1.2.2 Key Fields
- line_id (Primary Key)
- sales_order_id (Foreign Key)
- model_id (Foreign Key)
- quantity
- price_per_unit
- total_amount
- line_number
5.1.3 Salesorderasset
5.1.3.1 Description
Specific assets in sales orders
5.1.3.2 Key Fields
- sales_asset_id (Primary Key)
- sales_order_id (Foreign Key)
- asset_id (Foreign Key)
- selling_price
- total_cost
5.1.4 Outboundorder
5.1.4.1 Description
Shipping and fulfillment orders
5.1.4.2 Key Fields
- outbound_order_id (Primary Key)
- outbound_order_number (Unique: OT-YY-XXXX)
- sales_order_id (Foreign Key)
- customer_id (Foreign Key)
- shipping_instructions
- desired_ship_date
- carrier_id (Foreign Key)
- seal_number
- trailer_number
- container_type
- container_size
- container_number
- total_weight
- status
- created_date
- shipped_date
- accounting_approved
- approved_by
- approved_date
5.1.5 Assetpurchaseprice
5.1.5.1 Description
Purchase price tracking for assets
5.1.5.2 Key Fields
- price_id (Primary Key)
- asset_id (Foreign Key)
- purchase_price
- price_applied_date
- applied_by
- revenue_share_percentage
- client_payout_amount
6 Business Rules
6.1 Sales Order Creation
- Sales order number format: SO-YY-XXXX (year + sequential from 0001)
- Customer must be account type Downstream or Customer
- Shipping and invoicing addresses must be associated with selected customer
- Sales order type determines allowed asset statuses for addition
- Sales order type cannot be changed once assets added
6.2 Asset Status Rules
- Sales Order Type 'Sales': Only 'To Be Sold' assets allowed
- Sales Order Type 'Donation': Only 'Reserved for Donation' assets allowed
- Sales Order Type 'Redeployment': Only 'Waiting for Redeployment' assets allowed
- Sales Order Type 'Recycle': Only 'For Recycle' assets allowed
- Sales Order Type 'Internal Order': Only 'To Be Sold' assets allowed
6.3 Pricing Rules
- Buyback assets require purchase price before 'To Be Sold' status
- Revenue share assets: Client payout = Purchase Price × Revenue Share Percentage
- Assets with 'Purchase Price Applied' status can be added to sales orders
- Manager override required to modify 'Purchase Price Applied' status
6.4 Fulfillment Rules
- Asset scanning validation based on sales order type
- Product line orders: model number must match
- Asset-specific orders: exact asset number match required
- All assets must be picked before marking ready for shipment
- Accounting approval required for pre-pay payment terms
- Operators cannot remove assets from shipping order (must modify sales order)
6.5 Shipping Rules
- Outbound order number format: OT-YY-XXXX (year + sequential)
- Bill of Lading required for all shipments
- Packing list generated with all product lines and quantities
- Post-shipment asset status updates based on sales order type mapping
- NetSuite integration for shipment data transmission
7 Integration Points
7.1 Inbound Systems
| System | Integration Type | Data Flow | Frequency |
|---|---|---|---|
| Asset Auditing | Database | Asset availability, status, and pricing information | Real-time |
| Account Management | Database | Customer information and addresses | Real-time |
7.2 Outbound Systems
| System | Integration Type | Data Flow | Frequency |
|---|---|---|---|
| NetSuite | API | Shipment data and asset status updates | Post-shipment |
| Invoicing | Database | Sales order completion for invoice generation | Real-time |
8 Sign Off
8.1 Approval
| Role | Name | Signature | Date |
|---|---|---|---|
8.2 Document History
| Version | Date | Changes Made | Changed By |
|---|---|---|---|
| 1.0 | 2025-12-22 | Initial Sales Operations module SRS | SRS Development Team |