Find alternative products
find_alternativesFind comparable products to a given product in the same market, optionally within a budget or with specific attribute changes. Use when the user asks for alternatives, cheaper equivalents, or "something like X but Y".
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"pid": "<pid>",
"market": "<market>"
},
"name": "find_alternatives"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pid | Yes | Product id exactly as returned by a previous Edwin tool result. Never invent one — call search_products first if you do not have a pid. | |
| limit | No | How many alternatives to return. | |
| market | Yes | ISO 3166-1 alpha-2 country code of the user's shopping market, e.g. DE, AT, NL, FR, GB, US. Infer from the user's context. | |
| direction | No | Which way to look: 'cheaper' for lower-priced equivalents, 'better' for higher-priced ones, 'similar' for the same price class. | similar |
| must_have | No | Attribute words the alternative must carry in its name, e.g. ["oled"] for "like this one but OLED". Matched against product title and brand. | |
| budget_max | No | Upper price limit in the market currency, if the user states one. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Plain-language explanation for the user. Set whenever the result is empty, and also when something about a non-empty result needs saying — for example that the ranking did not run and the order is the raw catalog order. | |
| items | Yes | ||
| market | Yes | ||
| direction | Yes | ||
| reference | Yes | ||
| empty_reason | No | Machine-readable reason for an empty result. restricted_category: matches existed but fall into a product category this connector does not serve. no_match_in_market: nothing matched in this market. no_offers_for_product: the product has no merchant offer here at all. no_fresh_offers_for_product: the product has offers, but none is confirmed by the most recent import of its source, so there is no up-to-date price — do not quote an older one. query_too_short: the query carried no searchable terms. market_not_covered: no offers in this market at all. unknown_pid: no product with that id — call search_products for a real one. no_substantial_match: products matched, but none had a recognizable brand or publisher and the fields required for the product type — say so; the user can explicitly ask for unbranded or self-published items. |