voog_ecommerce_api_call
Send HTTP requests to the Voog Ecommerce v1 API to manage orders, products, carts, discounts, and shipping. Supports all HTTP methods and query parameters.
Instructions
Generic Ecommerce v1 API passthrough. Forward an HTTP request to https:///admin/api/ecommerce/v1. Same shape as voog_admin_api_call, different base URL. Supports ?include=... and ?language_code=... per Voog ecommerce conventions. Use for orders, carts, discounts, shipping_methods, gateways, cart_fields, cart_rules, delivery_provider_configs, templates, bulk product actions, products imports, etc.
method='GET' is DEPRECATED in v1.4 — use voog_ecommerce_api_read instead; GET support is removed in v1.5.
PUT gotchas (Voog ecommerce v1 quirks — typed tools handle these for you, passthrough does not):
On
PUT /products/{id}, asset references must use the{"assets": [{"id": N}, ...]}shape. Sending the POST-shapeasset_ids: [N, ...]on PUT silently drops all but the hero image. Preferproduct_set_imagesfor image attachment; it handles the shape internally.On
PUT /products/{id}, thevariantsarray is destructive: Voog deletes every variant not present in the array — even variants with a stableid. Always includevariant_attributesalongsidevariants, or send the full existing variant list. Preferproduct_update; it requires explicitforce=trueto bypass this guard.On
PUTto endpoints that accept adatahash (e.g./pages/{id},/articles/{id},/site), thedatafield REPLACES the entire hash — unspecified keys are dropped. Voog supportsPATCH(merge semantics) on these routes; use method='PATCH' here, or prefer the per-key toolspage_set_data/article_set_data/site_set_datawhich route through PATCH automatically (typed wrappers handle this as of v1.4).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Site name from voog_list_sites | |
| method | Yes | HTTP method | |
| path | Yes | Endpoint path starting with '/', e.g. '/orders', '/products/42', '/settings'. | |
| body | No | Optional JSON body for POST/PUT/PATCH. Voog uses different envelope conventions per endpoint — see docs/voog-mcp-endpoint-coverage.md. | |
| params | No | Optional query parameters as a flat string-keyed object, e.g. {'include': 'translations', 'q.page.hidden.$eq': 'true'}. |