Similar Products
Overview Description
The Similar Products feature allows users to identify and view products that share similarities with those in the selected dataset. This functionality helps users discover related products, competitive alternatives, or complementary items based on various similarity metrics. By analyzing product attributes, reviews, and market positioning, the system can identify meaningful product relationships that aid in competitive analysis and market research.
This feature requires a valid dataset containing product information and is particularly useful for market comparison, product planning, and identifying gaps in product offerings.
Swagger Link
API: Similar Products API
Case Documentation
Case 1: Similar Products
Description
User successfully retrieves a list of products similar to those in the selected dataset.
Sequence Diagram
sequenceDiagram
participant User
participant API as ProductAnalyzerController
participant Service as ProductAnalysisService
participant Repo as WishlistDatasetHistoryRepository
participant JP as JP API
Note over User,JP: Step 1: Request Similar Products
User->>API: GET /api/v1/general/analyzer/{wldh_slug}/products/similar (with parameters)
Note over API,Repo: Step 2: Validate Dataset
API->>Repo: findBySlug(wldh_slug)
Repo-->>API: wishlistDatasetHistory
Note over API,Service: Step 3: Retrieve Similar Products
API->>Service: getSimilarProducts(dataset_id, request_data)
Service->>JP: Query for similar products
JP-->>Service: Raw similar products data
Note over Service,API: Step 4: Process Similarity Data
Service-->>API: Processed similar products
Note over API,User: Step 5: Return Response
API-->>User: 200 OK (Similar products data)
Steps
Step 1: Request Similar Products
- Description: User makes a request to retrieve similar products for a dataset
- Request:
GET /api/v1/general/analyzer/{wldh_slug}/products/similar - Parameters:
- Path parameter:
wldh_slug- unique identifier for the dataset history - Query parameters:
product_id- specific product to find similarities for (optional)similarity_threshold- minimum similarity score (optional)limit- maximum number of similar products to return (optional)
- Path parameter:
Step 2: Validate Dataset
- Description: System validates that the requested dataset exists
- Action: Find dataset by slug in the repository
- Potential errors: Dataset not found
Step 3: Retrieve Similar Products
- Description: System searches for products similar to those in the dataset
- Action: Call service method to get similar products
- Similarity factors considered:
- Product category
- Price range
- Feature set
- Review content similarity
- Target market
Step 4: Process Similarity Data
- Description: System processes and formats similarity data
- Action: Sort products by similarity score and prepare response
- Processing:
- Calculate similarity metrics
- Include similarity factors
- Apply requested filters
Step 5: Return Response
- Description: System returns similar products data to user
- Response:
- Success:
200 OKwith similar products data - Error: Appropriate error message and status code
- Success:
Database Related Tables & Fields
View: Analysis API Spectification
Error Handling
-
Log
- Similar products retrieval failures logged to application log
-
Error Detail:
Status Code Error Message Description 404 "Dataset not found" When the specified dataset slug does not exist 400 "Invalid parameters" When provided parameters don't meet validation requirements 500 Generic error with exception message When unexpected errors occur during processing
Additional Notes
- Similarity calculations may be computationally intensive for large datasets
- Consider caching similarity results for performance improvement
- The similarity algorithm considers both product attributes and review content for more accurate matches
- Similarity scores range from 0.0 to 1.0, with higher scores indicating greater similarity