Vesremont catalog, product search and buyer-authorized shopping operations.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Add quantity units of a product selected with get_product to the consenting buyer's basket. Quantity is an increment; use update_cart_item with an item_id from get_cart for an absolute final quantity. Do not retry an uncertain add blindly; read get_cart to reconcile. Does not create an order. OAuth scopes: cart:write. Changes buyer or order state.
Number of units to ADD to the existing basket quantity, not the desired final quantity. Do not blindly retry an uncertain add.
Internal numeric Vesremont product ID returned by catalog search or a product response, not the SKU/article or a basket item ID.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Add quantity units of a product selected with get_product to the consenting buyer's basket. Quantity is an increment; use update_cart_item with an item_id from get_cart for an absolute final quantity. Do not retry an uncertain add blindly; read get_cart to reconcile. Does not create an order. OAuth scopes: cart:write. Changes buyer or order state.
| Argument | Type | Description |
|---|---|---|
| quantity* | integer | Number of units to ADD to the existing basket quantity, not the desired final quantity. Do not blindly retry an uncertain add. |
| product_id* | integer | Internal numeric Vesremont product ID returned by catalog search or a product response, not the SKU/article or a basket item ID. |
{
"type": "object",
"required": [
"product_id",
"quantity"
],
"properties": {
"quantity": {
"type": "integer",
"maximum": 99,
"minimum": 1,
"description": "Number of units to ADD to the existing basket quantity, not the desired final quantity. Do not blindly retry an uncertain add."
},
"product_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Internal numeric Vesremont product ID returned by catalog search or a product response, not the SKU/article or a basket item ID."
}
},
"additionalProperties": false
}Save a current public product in this buyer's favorites, without adding it to the basket. Use get_favorites to inspect the saved list or remove_favorite to undo; use add_cart_item for a purchase basket. OAuth scopes: favorites:write. Changes buyer or order state.
| Argument | Type | Description |
|---|---|---|
| product_id* | integer | Internal numeric Vesremont product ID returned by catalog search or a product response, not the SKU/article or a basket item ID. |
{
"type": "object",
"required": [
"product_id"
],
"properties": {
"product_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Internal numeric Vesremont product ID returned by catalog search or a product response, not the SKU/article or a basket item ID."
}
},
"additionalProperties": false
}Create a pending order event subscription to a public HTTPS receiver. Returns its signing secret ONCE. The receiver must echo the signed verification challenge before activation. No customer contact fields are sent. Check expires_at and requires_active_grant. OAuth scopes: webhooks:write, orders:read. Changes buyer or order state.
| Argument | Type | Description |
|---|---|---|
| events* | array | Distinct order event categories to subscribe to for this application and consenting buyer session. No customer contact fields are included. |
| callback_url* | string | Public HTTPS receiver under your control for signed verification and order events. Private-network, credential-bearing and unsafe receiver URLs are rejected; echo the signed challenge to activate. |
{
"type": "object",
"required": [
"callback_url",
"events"
],
"properties": {
"events": {
"type": "array",
"items": {
"enum": [
"order.status_changed",
"order.cancelled",
"payment.status_changed"
],
"description": "One order event category: order status transition, cancellation, or payment-status transition."
},
"maxItems": 3,
"minItems": 1,
"description": "Distinct order event categories to subscribe to for this application and consenting buyer session. No customer contact fields are included.",
"uniqueItems": true
},
"callback_url": {
"type": "string",
"format": "uri",
"pattern": "^https://",
"maxLength": 2048,
"description": "Public HTTPS receiver under your control for signed verification and order events. Private-network, credential-bearing and unsafe receiver URLs are rejected; echo the signed challenge to activate."
}
},
"additionalProperties": false
}Stop future events for an owned subscription identified by list_webhooks or create_webhook; revokes it and cancels queued deliveries. This is not a pause: use create_webhook for a new subscription. An already in-flight HTTPS request cannot be recalled. OAuth scopes: webhooks:write. Changes buyer or order state.
| Argument | Type | Description |
|---|---|---|
| subscription_id* | string | Subscription ID returned by create_webhook or list_webhooks for this application and buyer session. Not a delivery ID or signing secret. |
{
"type": "object",
"required": [
"subscription_id"
],
"properties": {
"subscription_id": {
"type": "string",
"pattern": "^[a-f0-9]{32}$",
"description": "Subscription ID returned by create_webhook or list_webhooks for this application and buyer session. Not a delivery ID or signing secret."
}
},
"additionalProperties": false
}Inspect the consenting buyer's existing basket before changing its lines; rechecks current prices and stock and returns item_id for update_cart_item or remove_cart_item. Use get_checkout for delivery, payment and contact choices, not this tool. OAuth scopes: cart:read. Read-only.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Read available filter groups, values and ranges before a filtered search_products call. Supply a real section_id or brand_id and keep the same catalog context; use returned characteristic IDs, never invented IDs. This returns filter metadata, not product results. Public; no OAuth required. Read-only.
| Argument | Type | Description |
|---|---|---|
| filters | object | Storefront catalog filters. Combine with the current section/brand context; REST encodes this object as one JSON query value. |
| brand_id | integer | Restrict to this brand ID returned by search_brands or product data, not its display name. |
| section_id | integer | Restrict to this real catalog section. Do not combine with filters.section_ids. |
{
"type": "object",
"anyOf": [
{
"required": [
"section_id"
]
},
{
"required": [
"brand_id"
]
}
],
"required": [],
"properties": {
"filters": {
"type": "object",
"required": [],
"properties": {
"price": {
"type": "object",
"required": [],
"properties": {
"max": {
"type": "number",
"maximum": 9999999999.99,
"minimum": 0,
"multipleOf": 0.01,
"description": "Maximum catalog unit price in RUB. If supplied, it must be greater than zero and not below min."
},
"min": {
"type": "number",
"maximum": 9999999999.99,
"minimum": 0,
"multipleOf": 0.01,
"description": "Minimum catalog unit price in RUB. Omit for no lower price restriction."
}
},
"description": "Catalog unit-price bounds in RUB, not basket totals or delivery charges. Supply at least one bound.",
"minProperties": 1,
"additionalProperties": false
},
"range_id": {
"type": "object",
"description": "Map of numeric characteristic range IDs to min/max bounds. Use the numeric part of returned range:<id>; price uses price, not range ID 1.",
"maxProperties": 20,
"propertyNames": {
"pattern": "^(?:[2-9]|[1-9][0-9]{1,9})$"
},
"additionalProperties": {
"type": "object",
"required": [
"min",
"max"
],
"properties": {
"max": {
"type": "number",
"maximum": 9999999999.99,
"minimum": 0,
"multipleOf": 0.01,
"description": "Upper bound in the same characteristic units as min. Must not be below min."
},
"min": {
"type": "number",
"maximum": 9999999999.99,
"minimum": 0,
"multipleOf": 0.01,
"description": "Lower bound in the characteristic units returned by get_catalog_filters. Must not exceed max."
}
},
"description": "Both bounds for one real numeric characteristic; use its returned range ID as the map key.",
"additionalProperties": false
}
},
"charats_id": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Selected characteristic value ID from get_catalog_filters, not the characteristic group ID."
},
"maxItems": 20,
"description": "Selected characteristic value IDs from contextual catalog filters. Do not invent IDs.",
"uniqueItems": true
},
"section_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "One real catalog section ID, not a product or characteristic ID."
},
"maxItems": 20,
"minItems": 1,
"description": "Match any of these catalog sections (OR). Use real section IDs; do not combine with section_id.",
"uniqueItems": true
}
},
"description": "Storefront catalog filters. Combine with the current section/brand context; REST encodes this object as one JSON query value.",
"additionalProperties": false
},
"brand_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Restrict to this brand ID returned by search_brands or product data, not its display name."
},
"section_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Restrict to this real catalog section. Do not combine with filters.section_ids."
}
},
"additionalProperties": false
}Inspect delivery, payment and contact choices, validation and store options before update_checkout or prepare_order. Use get_cart for basket lines alone. Unquoted delivery and final totals stay null; no order is created and no payment is made. OAuth scopes: checkout:read. Read-only.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}List the consenting buyer's saved product IDs; inspect their current details with get_product or get_products_batch. Use add_favorite or remove_favorite to change this list; favorites are not basket contents. OAuth scopes: favorites:read. Read-only.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Read a saved order by the order_id returned by this application's submit_order for the same buyer session, including after reauthorization. Use get_checkout for an order not yet submitted. Saving means submitted, not confirmed by the store; unavailable history or confirmation data remain null. OAuth scopes: orders:read. Read-only.
| Argument | Type | Description |
|---|---|---|
| order_id* | integer | Order ID returned by this application's successful submission for the same buyer session; not an arbitrary store order. |
{
"type": "object",
"required": [
"order_id"
],
"properties": {
"order_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Order ID returned by this application's successful submission for the same buyer session; not an arbitrary store order."
}
},
"additionalProperties": false
}Inspect one product selected by search_products: current price, aggregate warehouse stock and public characteristics. Use its internal product_id, not the SKU; get_products_batch reads several known IDs. Stock does not promise same-day pickup; unknown values remain null. Public; no OAuth required. Read-only.
| Argument | Type | Description |
|---|---|---|
| product_id* | integer | Internal numeric Vesremont product ID returned by catalog search or a product response, not the SKU/article or a basket item ID. |
{
"type": "object",
"required": [
"product_id"
],
"properties": {
"product_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Internal numeric Vesremont product ID returned by catalog search or a product response, not the SKU/article or a basket item ID."
}
},
"additionalProperties": false
}Read customer feedback for a product selected with get_product, not its specifications. Returns only moderated, published review text, ratings and rating_summary; no pending reviews or review submission. Use page or cursor, never both; an empty list means no published reviews, not a zero-star rating. Public; no OAuth required. Read-only.
| Argument | Type | Description |
|---|---|---|
| page | integer | One-based result page, default 1. Do not combine with cursor; the existing offset window still applies. |
| sort | any | Published review order: newest first by default; choose date_asc for oldest first or rating_desc/rating_asc for highest/lowest ratings first. |
| cursor | string | Opaque next_cursor from the previous response. Keep the same filters/sort; do not combine with page. Expires after 15 minutes. Existing backend windows apply; not a frozen snapshot. |
| per_page | integer | Maximum results per page, default 20. Keep the same value when following next_cursor. |
| product_id* | integer | Internal numeric Vesremont product ID returned by catalog search or a product response, not the SKU/article or a basket item ID. |
{
"type": "object",
"required": [
"product_id"
],
"properties": {
"page": {
"type": "integer",
"maximum": 100001,
"minimum": 1,
"description": "One-based result page, default 1. Do not combine with cursor; the existing offset window still applies."
},
"sort": {
"enum": [
"date_desc",
"date_asc",
"rating_desc",
"rating_asc"
],
"description": "Published review order: newest first by default; choose date_asc for oldest first or rating_desc/rating_asc for highest/lowest ratings first."
},
"cursor": {
"type": "string",
"maxLength": 765,
"description": "Opaque next_cursor from the previous response. Keep the same filters/sort; do not combine with page. Expires after 15 minutes. Existing backend windows apply; not a frozen snapshot."
},
"per_page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Maximum results per page, default 20. Keep the same value when following next_cursor."
},
"product_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Internal numeric Vesremont product ID returned by catalog search or a product response, not the SKU/article or a basket item ID."
}
},
"additionalProperties": false
}Read 1 to 10 unique products by internal ID. Returns items in requested order and missing_ids for unpublished or absent products. Each ID consumes one normal catalog quota unit; no URLs, buyer actions or writes are accepted. Public; no OAuth required. Read-only.
| Argument | Type | Description |
|---|---|---|
| product_ids* | array | Unique internal product IDs to read together, not SKUs. One catalog quota unit is charged per ID, including missing products. |
{
"type": "object",
"required": [
"product_ids"
],
"properties": {
"product_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Internal numeric Vesremont product ID returned by catalog search or a product response, not the SKU/article or a basket item ID."
},
"maxItems": 10,
"minItems": 1,
"description": "Unique internal product IDs to read together, not SKUs. One catalog quota unit is charged per ID, including missing products.",
"uniqueItems": true
}
},
"additionalProperties": false
}Inspect delivery failures or retries for a subscription ID from create_webhook or list_webhooks. Returns only the latest 100 attempts, without event payloads or secrets; no manual resend is performed. Use list_webhooks for subscription status. OAuth scopes: webhooks:read. Read-only.
| Argument | Type | Description |
|---|---|---|
| subscription_id* | string | Subscription ID returned by create_webhook or list_webhooks for this application and buyer session. Not a delivery ID or signing secret. |
{
"type": "object",
"required": [
"subscription_id"
],
"properties": {
"subscription_id": {
"type": "string",
"pattern": "^[a-f0-9]{32}$",
"description": "Subscription ID returned by create_webhook or list_webhooks for this application and buyer session. Not a delivery ID or signing secret."
}
},
"additionalProperties": false
}List order event subscriptions owned by this application and buyer session, including IDs needed by delete_webhook or list_webhook_deliveries. Use list_webhook_deliveries for delivery attempts, not this listing. Signing secrets are never returned again. OAuth scopes: webhooks:read. Read-only.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}After get_checkout validation succeeds, prepare the exact order summary and a short-lived browser confirmation link. The buyer must personally approve that summary before submit_order; this prepares confirmation state but does not submit or pay for an order. OAuth scopes: order:prepare. Changes buyer or order state.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Delete the complete basket line identified by this buyer's get_cart item_id; not product_id or a favorites entry. Use update_cart_item to retain the line with a smaller quantity. Returns the refreshed basket; no order or payment. OAuth scopes: cart:write. Changes buyer or order state.
| Argument | Type | Description |
|---|---|---|
| item_id* | integer | Basket line item_id from this consenting buyer's get_cart response, not product_id or another buyer's item. |
{
"type": "object",
"required": [
"item_id"
],
"properties": {
"item_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Basket line item_id from this consenting buyer's get_cart response, not product_id or another buyer's item."
}
},
"additionalProperties": false
}Remove a saved product from this buyer's favorites using its product_id from get_favorites, not a basket item_id. Does not remove it from the basket; use remove_cart_item for that. Returns the updated favorites list. OAuth scopes: favorites:write. Changes buyer or order state.
| Argument | Type | Description |
|---|---|---|
| product_id* | integer | Internal numeric Vesremont product ID returned by catalog search or a product response, not the SKU/article or a basket item ID. |
{
"type": "object",
"required": [
"product_id"
],
"properties": {
"product_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Internal numeric Vesremont product ID returned by catalog search or a product response, not the SKU/article or a basket item ID."
}
},
"additionalProperties": false
}Find or browse brands through storefront brand search, including typo suggestions. Returns paginated public brand links and IDs for search_products.brand_id; this finds brands, not products. Public; no OAuth required. Read-only.
| Argument | Type | Description |
|---|---|---|
| q | string | Brand-name search query using the storefront brand search. Omit to browse public brands. |
| page | integer | One-based result page, default 1. Do not combine with cursor; the existing offset window still applies. |
| cursor | string | Opaque next_cursor from the previous response. Keep the same filters/sort; do not combine with page. Expires after 15 minutes. Existing backend windows apply; not a frozen snapshot. |
| per_page | integer | Maximum results per page, default 20. Keep the same value when following next_cursor. |
{
"type": "object",
"required": [],
"properties": {
"q": {
"type": "string",
"maxLength": 200,
"description": "Brand-name search query using the storefront brand search. Omit to browse public brands."
},
"page": {
"type": "integer",
"maximum": 100001,
"minimum": 1,
"description": "One-based result page, default 1. Do not combine with cursor; the existing offset window still applies."
},
"cursor": {
"type": "string",
"maxLength": 765,
"description": "Opaque next_cursor from the previous response. Keep the same filters/sort; do not combine with page. Expires after 15 minutes. Existing backend windows apply; not a frozen snapshot."
},
"per_page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Maximum results per page, default 20. Keep the same value when following next_cursor."
}
},
"additionalProperties": false
}Find or browse current catalog products by name, model or SKU; returns a bounded page with an exact total. Get contextual filter IDs from get_catalog_filters and brand IDs from search_brands; do not guess IDs. Read a selected result with get_product; narrow overly broad queries. Public; no OAuth required. Read-only.
| Argument | Type | Description |
|---|---|---|
| q | string | Storefront text search query. Omit to browse the catalog with the supplied section, brand and filters. |
| page | integer | One-based result page, default 1. Do not combine with cursor; the existing offset window still applies. |
| sort | any | Catalog order: id_sort is the default ID order; price_min sorts cheapest first, price_max most expensive first. |
| cursor | string | Opaque next_cursor from the previous response. Keep the same filters/sort; do not combine with page. Expires after 15 minutes. Existing backend windows apply; not a frozen snapshot. |
| filters | object | Storefront catalog filters. Combine with the current section/brand context; REST encodes this object as one JSON query value. |
| brand_id | integer | Restrict to this brand ID returned by search_brands or product data, not its display name. |
| per_page |
Submit only an order already approved by the buyer in the confirmation page. Requires the returned token and a stable unique idempotency_key; retry the same key after uncertainty. Never bypass confirmation. OAuth scopes: order:submit. Changes buyer or order state.
| Argument | Type | Description |
|---|---|---|
| idempotency_key* | string | Unique key for ONE approved submission. Keep this key and the same body for retries after uncertainty; never generate a new key to retry that order. REST sends it as Idempotency-Key. |
| confirmation_token* | string | Token returned by prepare_order for the exact summary the buyer personally approved on the confirmation page. It cannot replace that approval. |
{
"type": "object",
"required": [
"confirmation_token",
"idempotency_key"
],
"properties": {
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9._:-]{16,128}$",
"description": "Unique key for ONE approved submission. Keep this key and the same body for retries after uncertainty; never generate a new key to retry that order. REST sends it as Idempotency-Key."
},
"confirmation_token": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Token returned by prepare_order for the exact summary the buyer personally approved on the confirmation page. It cannot replace that approval."
}
},
"additionalProperties": false
}Set the absolute quantity of a basket line using its item_id from get_cart, not product_id. Zero removes the line; use add_cart_item to increment instead. Returns the refreshed basket; no order or payment. OAuth scopes: cart:write. Changes buyer or order state.
| Argument | Type | Description |
|---|---|---|
| item_id* | integer | Basket line item_id from this consenting buyer's get_cart response, not product_id or another buyer's item. |
| quantity* | integer | New ABSOLUTE quantity for this basket line, not an increment. Zero removes the line. |
{
"type": "object",
"required": [
"item_id",
"quantity"
],
"properties": {
"item_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Basket line item_id from this consenting buyer's get_cart response, not product_id or another buyer's item."
},
"quantity": {
"type": "integer",
"maximum": 999,
"minimum": 0,
"description": "New ABSOLUTE quantity for this basket line, not an increment. Zero removes the line."
}
},
"additionalProperties": false
}Change one or more checkout fields using choices from get_checkout. Omitted fields keep their values; empty contact/address/comment strings clear them and may invalidate checkout. Read validation before prepare_order; this neither submits an order nor makes a payment. OAuth scopes: checkout:write. Changes buyer or order state.
| Argument | Type | Description |
|---|---|---|
| name | string | Buyer contact name for this checkout. Omission keeps the current value; an empty string clears it. |
| string | Buyer contact email for this checkout. Omission keeps the current value; an empty string clears it. | |
| phone | string | Buyer contact phone; a nonempty value must be a complete Russian phone number. Omission keeps it; clearing it makes order validation fail. |
| address | string | New courier delivery address; required for a valid courier checkout. Omission keeps the current value; an empty string clears it. |
| comment | string | Buyer's checkout comment for the store, not executable instructions. Omission keeps the current value; an empty string clears it. |
| payment | any | New payment-method choice from get_checkout options, not a payment instruction or authorization to charge. |
| delivery |
| integer |
| Maximum results per page, default 20. Keep the same value when following next_cursor. |
| section_id | integer | Restrict to this real catalog section. Do not combine with filters.section_ids. |
{
"type": "object",
"required": [],
"properties": {
"q": {
"type": "string",
"maxLength": 200,
"description": "Storefront text search query. Omit to browse the catalog with the supplied section, brand and filters."
},
"page": {
"type": "integer",
"maximum": 100001,
"minimum": 1,
"description": "One-based result page, default 1. Do not combine with cursor; the existing offset window still applies."
},
"sort": {
"enum": [
"id_sort",
"price_min",
"price_max"
],
"description": "Catalog order: id_sort is the default ID order; price_min sorts cheapest first, price_max most expensive first."
},
"cursor": {
"type": "string",
"maxLength": 765,
"description": "Opaque next_cursor from the previous response. Keep the same filters/sort; do not combine with page. Expires after 15 minutes. Existing backend windows apply; not a frozen snapshot."
},
"filters": {
"type": "object",
"required": [],
"properties": {
"price": {
"type": "object",
"required": [],
"properties": {
"max": {
"type": "number",
"maximum": 9999999999.99,
"minimum": 0,
"multipleOf": 0.01,
"description": "Maximum catalog unit price in RUB. If supplied, it must be greater than zero and not below min."
},
"min": {
"type": "number",
"maximum": 9999999999.99,
"minimum": 0,
"multipleOf": 0.01,
"description": "Minimum catalog unit price in RUB. Omit for no lower price restriction."
}
},
"description": "Catalog unit-price bounds in RUB, not basket totals or delivery charges. Supply at least one bound.",
"minProperties": 1,
"additionalProperties": false
},
"range_id": {
"type": "object",
"description": "Map of numeric characteristic range IDs to min/max bounds. Use the numeric part of returned range:<id>; price uses price, not range ID 1.",
"maxProperties": 20,
"propertyNames": {
"pattern": "^(?:[2-9]|[1-9][0-9]{1,9})$"
},
"additionalProperties": {
"type": "object",
"required": [
"min",
"max"
],
"properties": {
"max": {
"type": "number",
"maximum": 9999999999.99,
"minimum": 0,
"multipleOf": 0.01,
"description": "Upper bound in the same characteristic units as min. Must not be below min."
},
"min": {
"type": "number",
"maximum": 9999999999.99,
"minimum": 0,
"multipleOf": 0.01,
"description": "Lower bound in the characteristic units returned by get_catalog_filters. Must not exceed max."
}
},
"description": "Both bounds for one real numeric characteristic; use its returned range ID as the map key.",
"additionalProperties": false
}
},
"charats_id": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Selected characteristic value ID from get_catalog_filters, not the characteristic group ID."
},
"maxItems": 20,
"description": "Selected characteristic value IDs from contextual catalog filters. Do not invent IDs.",
"uniqueItems": true
},
"section_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "One real catalog section ID, not a product or characteristic ID."
},
"maxItems": 20,
"minItems": 1,
"description": "Match any of these catalog sections (OR). Use real section IDs; do not combine with section_id.",
"uniqueItems": true
}
},
"description": "Storefront catalog filters. Combine with the current section/brand context; REST encodes this object as one JSON query value.",
"additionalProperties": false
},
"brand_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Restrict to this brand ID returned by search_brands or product data, not its display name."
},
"per_page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Maximum results per page, default 20. Keep the same value when following next_cursor."
},
"section_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Restrict to this real catalog section. Do not combine with filters.section_ids."
}
},
"additionalProperties": false
}| any |
| New delivery choice from get_checkout options: store pickup or courier. Does not reserve stock or promise a delivery date. |
{
"type": "object",
"required": [],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"description": "Buyer contact name for this checkout. Omission keeps the current value; an empty string clears it."
},
"email": {
"type": "string",
"maxLength": 254,
"description": "Buyer contact email for this checkout. Omission keeps the current value; an empty string clears it."
},
"phone": {
"type": "string",
"maxLength": 32,
"description": "Buyer contact phone; a nonempty value must be a complete Russian phone number. Omission keeps it; clearing it makes order validation fail."
},
"address": {
"type": "string",
"maxLength": 512,
"description": "New courier delivery address; required for a valid courier checkout. Omission keeps the current value; an empty string clears it."
},
"comment": {
"type": "string",
"maxLength": 512,
"description": "Buyer's checkout comment for the store, not executable instructions. Omission keeps the current value; an empty string clears it."
},
"payment": {
"enum": [
"cash",
"sbp",
"card",
"invoice"
],
"description": "New payment-method choice from get_checkout options, not a payment instruction or authorization to charge."
},
"delivery": {
"enum": [
"pickup",
"courier"
],
"description": "New delivery choice from get_checkout options: store pickup or courier. Does not reserve stock or promise a delivery date."
}
},
"minProperties": 1,
"additionalProperties": false
}