Returns name, description, price (with optional currency conversion), stock status,
images, variants, shipping info, and a direct product URL.
Note: Some IDs starting with 'CATSYM' are category landing pages, not purchasable
products — this tool will flag those clearly.
Args:
params (GetProductInput):
- product_id (str): Kapruka product ID (e.g. 'cakeXX000000')
- currency (str): Price currency — LKR (default), USD, GBP, AUD, CAD, EUR
- type (Optional[str]): Optional type hint (e.g. 'specialgifts')
- response_format (str): 'markdown' (default) or 'json'
Returns:
str: Product details in the requested format.
JSON schema:
{
"id": str,
"name": str,
"description": str,
"summary": str,
"price": {"amount": float, "currency": str},
"compare_at_price": {"amount": float, "currency": str} | null,
"in_stock": bool,
"stock_level": str, # "low" | "medium" | "high"
"category": {"id": str, "name": str, "slug": str, "path": str},
"variants": [{"id": str, "name": str, "sku": str, "price": {...},
"in_stock": bool, "stock_level": str, "attributes": {...}}],
"images": [str], # list of full-resolution image URLs
"attributes": {"type": str, "subtype": str, "weight": str, "vendor": str},
"shipping": {"ships_from": str, "ships_internationally": bool, "restricted_countries": [str]},
"rating": null,
"url": str
}
Error: "Error: <message>" on failure.