2.2 KiB
2.2 KiB
ADDED Requirements
Requirement: Discontinued packages SHALL remain renewable only for eligible existing customers
The H5/C client SHALL keep discontinued packages out of the ordinary package catalog shown to new customers and agents. An eligible existing customer SHALL be able to use a valid current_package_id from asset info or package_ids from a historical order to continue a package renewal.
Scenario: New customer opens the package catalog
- WHEN the package catalog contains a discontinued package that is not the customer's current package
- THEN the client SHALL not display that package as an ordinary purchase option
Scenario: Existing customer is using a discontinued current package
- WHEN asset info returns a discontinued package through
current_package_id - THEN the client SHALL expose that ID only in the eligible renewal context
- AND the client SHALL allow the customer to continue through the existing package-order flow
Scenario: Existing customer renews from a historical order
- WHEN a historical order returns one or more valid
package_ids - THEN the client SHALL use those IDs for the renewal selection when the existing renewal flow provides that entry
- AND the client SHALL preserve the historical order data unchanged
Requirement: Renewal SHALL reuse the standard order creation contract
The client SHALL create a renewal by calling POST /api/c/v1/orders/create with the selected package ID or IDs, the asset identifier, and a currently allowed payment_method. It SHALL not invent or call a dedicated discontinued-package renewal endpoint.
Scenario: Submit a discontinued-package renewal
- WHEN an eligible customer confirms a renewal with an allowed payment method
- THEN the client SHALL submit the selected package IDs, identifier, and payment method to the standard order endpoint
- AND the client SHALL follow the standard payment response handling
Scenario: No eligible package ID is available
- WHEN neither asset info nor the relevant historical order supplies a valid package ID
- THEN the client SHALL show that renewal is unavailable
- AND the client SHALL not guess an ID from the ordinary package catalog