Skip to content

feat: add ShopSavvy product search tool#5159

Open
jakemarsh wants to merge 1 commit intocrewAIInc:mainfrom
shopsavvy:add-shopsavvy-tool
Open

feat: add ShopSavvy product search tool#5159
jakemarsh wants to merge 1 commit intocrewAIInc:mainfrom
shopsavvy:add-shopsavvy-tool

Conversation

@jakemarsh
Copy link
Copy Markdown

@jakemarsh jakemarsh commented Mar 28, 2026

Adds a ShopSavvy product search tool so crewAI agents can look up products and get live pricing from thousands of retailers. Requires a SHOPSAVVY_API_KEY env var (get one here).


Note

Low Risk
Low risk: adds a new optional external-API-backed tool plus tests and exports, without modifying shared execution logic. Main risk is runtime failures from API key/config/network issues when the tool is used.

Overview
Adds a new ShopSavvyProductSearchTool that queries the ShopSavvy Data API (/products/search) and returns formatted JSON results, requiring SHOPSAVVY_API_KEY (or an explicit api_key).

Exports the tool from the top-level crewai_tools and crewai_tools.tools packages, and includes README docs plus unit tests covering initialization, missing-key validation, request construction, and error propagation.

Written by Cursor Bugbot for commit a5a385d. This will update automatically on new commits. Configure here.

Add ShopSavvyProductSearchTool that searches for products and retrieves
real-time pricing across thousands of retailers via the ShopSavvy Data API.
Supports queries by product name, barcode, UPC, EAN, ISBN, ASIN, or URL.
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

)
from crewai_tools.tools.shopsavvy_product_search.shopsavvy_product_search import (
ShopSavvyProductSearchTool,
)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Import breaks alphabetical order, splits related serpapi imports

Low Severity

The ShopSavvyProductSearchTool import and __all__ entry are inserted in the wrong alphabetical position. Since "Sh" sorts after "Se", ShopSavvyProductSearchTool belongs after all the Serp*/Serply* entries (before SingleStoreSearchTool), not between SerpApiGoogleSearchTool and SerpApiGoogleShoppingTool. This also splits two related serpapi_tool imports that were previously adjacent. The same issue appears in both __init__.py files in both the import statements and the __all__ lists.

Additional Locations (2)
Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant