shopping-expert
SafeShopping & E-commerce
Find and compare products online (Google Shopping) and locally (stores near you).
SKILL.md
# Shopping Expert
Find and compare products online and locally with smart recommendations.
## Quick Start
Find products online:
```bash
uv run {baseDir}/scripts/shop.py "coffee maker" \
--budget medium \
--max-results 5
```
Search with budget constraint:
```bash
uv run {baseDir}/scripts/shop.py "running shoes" \
--budget "$100" \
--preferences "Nike, cushioned, waterproof"
```
Find local stores:
```bash
uv run {baseDir}/scripts/shop.py "Bio Gemüse" \
--mode local \
--location "Hamburg, Germany"
```
Hybrid search (online + local):
```bash
uv run {baseDir}/scripts/shop.py "Spiegelreflexkamera" \
--mode hybrid \
--location "München, Germany" \
--budget high \
--preferences "Canon, 4K Video"
```
Search US stores:
```bash
uv run {baseDir}/scripts/shop.py "running shoes" \
--country us \
--budget "$100"
```
## Search Modes
- **online**: E-commerce sites (Amazon, Walmart, etc.) via Google Shopping
- **local**: Nearby stores via Google Places API
- **hybrid**: Both online and local results merged and ranked
- **auto**: Intelligent mode selection based on query (default)
## Parameters
- `query`: Product search query (required)
- `--mode`: Search mode (online|local|hybrid|auto, default: auto)
- `--budget`: "low/medium/high" or "€X"/"$X" amount (default: medium)
- `--location`: Location for local/hybrid searches
- `--preferences`: Comma-separated (e.g., "brand:Sony, wireless, black")
- `--max-results`: Maximum products to return (default: 5, max: 20)
- `--sort-by`: Sort order (relevance|price-low|price-high|rating)
- `--output`: text|json (default: text)
- `--country`: Country code for search (default: de). Use "us" for US, "uk" for UK, etc.
## Budget Levels
- **low**: Under €50
- **medium**: €50-€150
- **high**: Over €150
- **exact**: "€75", "€250" (or "$X" for US searches)
## Output Format
**Default (text)**: Markdown table with product details, ratings, availability, and buy links
**JSON**: Structured data with all product metadata, scores, and links
## Scoring Algorithm
Products are ranked using weighted scoring:
- **Price match (30%)**: Within budget range gets full points
- **Rating (25%)**: Higher ratings score better
- **Availability (20%)**: In stock > limited > out of stock
- **Review count (15%)**: More reviews = more trustworthy
- **Shipping/Distance (10%)**: Free shipping or nearby stores score higher
- **Preference match (bonus)**: Keywords in product description
## API Keys Required
- **SERPAPI_API_KEY**: Required for online shopping (all modes except local-only)
- **GOOGLE_PLACES_API_KEY**: Only required for local and hybrid modes
## Limitations
- **API limits**: SerpAPI and Google Places have usage quotas
- **Real-time data**: Prices and availability may change
- **Stock accuracy**: Online availability reflects last API update
- **Local inventory**: Store stock not guaranteed via Places API
## Error Handling
- Invalid query → Returns error with suggestions
- No results found → Relaxes filters and retries
- API failures → Retry with exponential backoff (3 attempts)
- Missing API keys → Clear error message with setup instructions
More in Shopping & E-commerce
anylist
UnboundManage grocery and shopping lists via AnyList.
bring-shopping
SafeManage Bring! shopping lists via the unofficial bring-shopping Node.js library.
checkers-sixty60
SafeShop on Checkers.co.za Sixty60 delivery service via browser automation.
event-planner
CautionPlan events (night out, weekend, date night, team outing, meals, trips) by searching venues.