Product Lifecycle Management
Overview
Products in SynthesQ follow a defined lifecycle with specific state transitions to ensure data integrity and business rule compliance.
Lifecycle States
Draft
A product starts in Draft state when first created. This allows you to:
- Build the product definition incrementally
- Set up pricing before making it available
- Configure inventory settings
- Add product attributes and variants
Transitions: Can move to Active or Inactive
Active
Active products are fully configured and available for:
- Customer purchases
- Sales order line items
- Inventory reservations
- Purchase order generation
Transitions: Can move to Inactive or Discontinued
Inactive
Inactive products are temporarily unavailable but retain all data:
- Not visible in customer catalog
- Cannot be added to new orders
- Existing orders remain unaffected
- Inventory tracking continues
Transitions: Can move back to Active or to Discontinued
Discontinued
Discontinued products are permanently removed from active use:
- Cannot be reactivated
- Historical data preserved
- Existing orders unaffected
- Inventory tracking stops
Transitions: Terminal state (no transitions)
Business Scenarios
Scenario 1: Launching a New Product
Steps:
- Create product in Draft state via API
- Configure pricing (selling_price, cost_price)
- Set inventory settings (track_inventory, reorder_point)
- Add product attributes (EAV system)
- Generate variants if needed (for configurable products)
- Transition to Active state
Key Considerations:
- Ensure selling_price ≥ cost_price (avoid negative margins)
- Set appropriate reorder_point based on lead time
- Validate all required attributes before activation
Scenario 2: Seasonal Product Management
Use Case: Product available only during certain seasons
Workflow:
- Product starts Active during season
- Transition to Inactive at season end
- Keep inventory data for next season
- Reactivate at next season start
Why Not Discontinued:
- Preserves inventory settings
- Maintains historical performance data
- Allows quick reactivation
Scenario 3: Phasing Out a Product
Use Case: Product being replaced by newer model
Workflow:
- Create new replacement product
- Set old product to Inactive (stop new sales)
- Let existing inventory sell through
- When stock depleted, transition to Discontinued
- Reason tracking ensures audit trail
Required Fields:
status_change_reason: Document why product discontinued- Archived for reporting and compliance
State Transition Rules
Validation Rules
Draft → Active:
- Must have selling_price
- Must have valid SKU
- Must have category (if required by business rules)
- All required attributes must be set
Active → Inactive:
status_change_reasonrecommended- No validation blockers (can always deactivate)
Active/Inactive → Discontinued:
status_change_reasonREQUIRED- Cannot be reversed
- Admin permission may be required
*Discontinued → :
- No transitions allowed (terminal state)
API Endpoints
Check current status:
- GET
/api/v1/operations/products/{id}→ Returns product with currentstatusfield
Change status:
- PATCH
/api/v1/operations/products/{id}→ Includestatusandstatus_change_reason
Specialized endpoints:
- POST
/api/v1/operations/products/{id}/activate - POST
/api/v1/operations/products/{id}/deactivate - POST
/api/v1/operations/products/{id}/discontinue
Refer to API Reference for detailed request/response structures.
Integration Points
With Inventory Module
- Status changes affect stock reservation rules
- Inactive products: reservations honored but no new reservations
- Discontinued products: all reservations released
With Sales Module
- Active products: available for orders
- Inactive/Discontinued: cannot be added to new orders
- Existing orders: unaffected by status changes
With Purchase Orders Module
- Discontinued products: removed from auto-reorder calculations
- Inactive products: manual POs still possible
- Active products: full reorder automation
Best Practices
- Always provide status_change_reason for Discontinued transitions (audit trail)
- Use Inactive instead of Discontinued if product might return
- Check inventory levels before discontinuing (avoid orphaned stock)
- Update product descriptions to indicate "Limited availability" before setting Inactive
- Notify sales team before major status changes
Related Guides
- Inventory Management - Stock tracking and reservations
- Product Variants - Managing configurable products
- Pricing Strategy - Price changes and margin tracking