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)

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 OK with similar products data
    • Error: Appropriate error message and status code

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