How to connect an AI agent to a Shopcore store
Shopcore AI API is a single gateway to approved store actions. It does not expose Python, the database, the file system, or server access.
For AI agents: always fetch the live catalogue from
GET /ai/v1/methods/before acting. Never invent method or parameter names. Prefer low-risk read methods and obtain explicit owner confirmation before high-risk changes.
Access
- Open Site settings in the Hive admin.
- Enable the last toggle, AI agent API.
- Open AI agent access to view the identifier, copy the connection prompt, or regenerate the token. Regeneration immediately revokes the previous token.
The key identifier is a non-secret label used for logs, recognition, and revocation. It is shown separately only in Hive settings. Only the token authorizes requests and must remain secret.
API flow
GET https://<your-hive-host>/ai/v1/methods/
Authorization: Bearer <your-token>
POST https://<your-hive-host>/ai/v1/invoke/
Authorization: Bearer <your-token>
Content-Type: application/json
{"method": "system.status", "params": {}, "options": {"confirmed": false}}
The manifest supports group, access, and risk filters. File methods use multipart fields method, params_json, options_json, plus the named file fields declared by the method.
Upload your own image into a page, article or blog-home block with pages.blocks.media.set: send the file in the file field and take the field path from media_fields in the pages.blocks.get response (for example background_image or slides.1.background_image). Only that field changes; remove an image with pages.blocks.media.delete.
Responses and context
Every successful response includes request status, request_id, method metadata, data, catalogue version, and store context. If a response does not contain the needed domain data, call the relevant read method instead of guessing.
Risk and confirmation
Read current state first. Methods with confirmation: required are rejected unless the owner has explicitly approved the exact action and the agent sends options.confirmed=true. Dynamic-risk methods may require confirmation for sensitive parameters such as custom HTML, indexing, or legal details. Audit logs redact tokens, passwords, and secrets.
Critical domain rules
Products and automatic import
Before a manual product change, call exchange.auto_import.get. If automatic import is active, updates existing products, and the field appears in managed_fields, the next run may overwrite the manual change. Give the owner a choice: proceed once, change/disable the import mapping, or skip the manual edit.
Warehouse stock
When the warehouse module is enabled, catalog.products.update rejects patch.warehouse_count. Use warehouse.stock.list → warehouse.revisions.create → warehouse.revisions.get → confirmed warehouse.revisions.post.
Blocks and custom HTML
Search pages.blocks.catalog first. If the visual block is missing, use html_code for the custom UI and enable only the smallest required expose_* fields from shopcore.html-block-data.v1.
Every dataset is off by default. The block does not grant Python, raw backend context, private-data, or AI-token access and HTML changes require explicit confirmation.
Upload images for custom HTML into the block image library (images, up to 30) with pages.blocks.media.set and append=true, then reference them in HTML as [[image:key]].
Product order in the “Товари сайту” block
The site_products block has a content.shared.sort setting (since catalog_version 2026-09-26.1; -number since 2026-09-27.1): number — default (by sequence number), -number — by sequence number, reversed, price — cheapest first, -price — most expensive first, -views — most popular, -updated_at — newest first, -rating — top rated. These are the catalog block's sort keys plus -number; an unknown value falls back to number.
It is a block setting, not a visitor choice: show_sort stays off. Change the order with pages.blocks.update in content.shared; the load-more button, pagination and auto-scroll keep the same order. With the warehouse module enabled, in-stock products come first.
Product placeholder images
A new product has a default cover image. Add real images, set the intended cover, and call catalog.product_images.list again: the old placeholder may move into the gallery and must be removed before publishing.
Category menu icons
Check media.*_is_placeholder and menu_media_requires_attention. Replace the default icon, icon_hover, and image with suitable files or deliberately remove them.
Page checkpoints
Before a broad, non-targeted redesign, call pages.copy to create an unpublished independent copy of metadata, active blocks, translations, and assets. Use block snapshots for targeted edits; snapshotting every block with its position is only a fallback because it is not an atomic page version.
Review and question moderation
Before moderating, read reviews.settings.get and the record itself with reviews.get or questions.get: never publish a review or question without reading its text. Reject spam, advertising, abuse, and suspicious records with status rejected via reviews.moderate / questions.moderate instead of deleting them — they leave the storefront and rating but stay in the history.
A questions.reply answer is published immediately on behalf of the shop. Author emails are personal data: do not reveal them without need or pass them to third parties.
Multiple shipping methods
courier, post, and self_pickup may have multiple instances. Call shipping.settings.get first and use the exact provider:id public code for update or delete.
required_fields must be a subset of show_fields. Checkout snapshots preserve the selected title, description, and pickup address in existing orders.
Data for a custom HTML block
Custom HTML receives JSON only after the required dataset is explicitly enabled in that block. When every switch is off, no JSON node is rendered and no data-specific query runs.
| Field | Exposed data |
|---|---|
expose_site_data | Site name and URL, language, currency, timezone, warehouse/account flags, and only cart line count and subtotal. |
expose_navigation_data | Published pages and the current shop's category tree, capped at 200 records per collection. |
expose_context_data | Runtime type and public current page, category, or product data. |
expose_product_data | Up to 24 products from current, latest, catalog, current_category, or selected_category. |
Read it from an inline script:
const root = document.currentScript.closest('[data-shopcore-html-code-block]');
const node = root?.querySelector('[data-shopcore-html-data] script[type="application/json"]');
const data = node ? JSON.parse(node.textContent) : {};
Enable only the data the UI actually consumes and respect products.meta.truncated. Never call the private AI API from storefront JavaScript.
Images for custom HTML
The block has an images library of up to 30 images with key, image, and alt. Only JPG, PNG, WEBP, and GIF up to 15 MB are accepted; the server verifies the content and stores the file as WEBP up to 2400 px. SVG and other files are rejected.
Agent upload: pages.blocks.media.set with append=true, field=images.{item_count}.image (listed in media_fields), and item={"key": "hero", "alt": "…"}; the response contains library_item.token. Without append the same field replaces the image, and pages.blocks.media.delete with remove_item=true removes the item.
<img src="[[image:hero]]" alt="Hero photo">
When the page renders, [[image:key]] is replaced with the current image URL, so the HTML stays valid after an image is replaced. An unknown key renders as an empty string and is listed in the builder strip.
Preventing flashes during JavaScript substitution
Prefer server-rendered values. Read the schema with pages.blocks.catalog or pages.blocks.get and save cart labels, button text, and other visible values in native block fields whenever possible.
If JavaScript substitution is genuinely required, resolve the header runtime page through pages.list, place a preloader before the mutating script, perform substitutions in one early pass, and release the preloader centrally. Add exception and 3–5 second timeout fallbacks, accessible status text, and safe no-script behavior. Verify hard reloads on a throttled connection and mobile viewport.
Recommended store-migration pipeline
- Fetch the live manifest and call
system.overview; never assume an old method schema. - Preflight automatic import, modules, languages, warehouse, categories, products, pages, existing blocks, and the block catalogue.
- Validate source encoding, required fields, stable source IDs/SKUs, parent relations, slug collisions, prices, and media URLs before writing.
- Persist
source_id → shopcore_idmappings and checkpoints. Treat normalized-title matching only as a reviewed, collision-free fallback. - Produce a no-write dry run with create/update/skip/conflict counts and all high-risk actions.
- Create entities unpublished; use read-before-write and
expected_updated_at. Resolve page/category/block IDs from runtime context, slug, or another stable attribute instead of hard-coding them. - Create variations, filters, upsells, and other relations only after every referenced entity exists. Upsells attach to each exact product or variation explicitly.
- Upload media with bounded concurrency, validation, retry/backoff for 429/5xx, and post-timeout reads before retrying a possibly successful write.
- Prefer standard blocks and preserve untouched fields. Apply the preloader rule above to unavoidable client-side substitutions.
- Verify counts, mappings, duplicates, prices, relations, media, SEO, pages, blocks, and representative storefront URLs; publish only after verification.
- Return a resume-safe summary with request IDs and created/updated/skipped/failed records, never the token.
Method catalogue: 204
This is the complete human- and machine-readable snapshot. The live manifest takes precedence if catalogue versions differ. Canonical method titles and descriptions are currently maintained in Ukrainian. catalog_version: 2026-09-18.2
Система (4)
Стан і можливості (2)
system.overview — Огляд даних магазину
What it does: Дає компактні лічильники каталогу, сторінок, замовлень, клієнтів і журналу AI без завантаження самих записів.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: shop.capabilities
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
system.status — Стан магазину
What it does: Повертає ідентичність магазину, публічний URL, стан підписки та модулів.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | public, shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: shop.capabilities
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
Журнал AI (2)
audit.requests.get — Деталі AI-запиту
What it does: Повертає один запис журналу з автоматично прихованими секретами.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: ai.audit_log
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Input data (params)
{
"type": "object",
"properties": {
"request_id": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"request_id"
]
}
Result (data)
{
"type": "object"
}
audit.requests.list — Список AI-запитів
What it does: Повертає журнал викликів цього магазину з фільтрами за методом і статусом; вміст запитів не включає.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: ai.audit_log
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"method": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"running",
"success",
"error"
]
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
Каталог (52)
Категорії (5)
catalog.categories.create — Створити категорію
What it does: Створює категорію у наявному MPTT-дереві; slug генерується автоматично, якщо не переданий. Після створення перевір category.media та menu_media_requires_attention: дефолтні icon/icon_hover/image не слід залишати в меню — завантажте доречні або очистіть їх.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | catalog_tree_changed | ||
Additional AI safety context
What it touches: catalog.categories, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Стандартні icon/icon_hover/image категорії можуть потрапити в меню як видимі заглушки.
Preflight checks
catalog.categories.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Перевір menu_media_requires_attention; завантаж доречні іконки/картинку або очисти дефолтні поля в адмінці.
Input data (params)
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"slug": {
"type": "string"
},
"parent_id": {
"type": [
"integer",
"null"
]
},
"number": {
"type": "integer"
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"title"
]
}
Result (data)
{
"type": "object"
}
catalog.categories.delete — Видалити категорію
What it does: Видаляє категорію. Через правила моделі також може видалити її дочірню гілку; товари отримують порожню основну категорію.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | category_branch_deleted, products_detached | ||
Additional AI safety context
What it touches: catalog.categories, storefront.catalog
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Стандартні icon/icon_hover/image категорії можуть потрапити в меню як видимі заглушки.
Preflight checks
catalog.categories.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Перевір menu_media_requires_attention; завантаж доречні іконки/картинку або очисти дефолтні поля в адмінці.
Input data (params)
{
"type": "object",
"properties": {
"category_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"category_id"
]
}
Result (data)
{
"type": "object"
}
catalog.categories.get — Дані категорії
What it does: Повертає категорію, її шлях, переклади, медіа, SEO та кількість товарів. Поля media.*_is_placeholder і menu_media_requires_attention показують, чи лишилися стандартні іконки/картинка меню, які треба свідомо заповнити або прибрати.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.categories, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Стандартні icon/icon_hover/image категорії можуть потрапити в меню як видимі заглушки.
Safer path
- Перевір menu_media_requires_attention; завантаж доречні іконки/картинку або очисти дефолтні поля в адмінці.
Input data (params)
{
"type": "object",
"properties": {
"category_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"category_id"
]
}
Result (data)
{
"type": "object"
}
catalog.categories.list — Список категорій
What it does: Повертає дерево категорій магазину з батьком, рівнем і кількістю дочірніх категорій.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.categories, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Стандартні icon/icon_hover/image категорії можуть потрапити в меню як видимі заглушки.
Safer path
- Перевір menu_media_requires_attention; завантаж доречні іконки/картинку або очисти дефолтні поля в адмінці.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"parent_id": {
"type": [
"integer",
"null"
]
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
catalog.categories.update — Оновити категорію
What it does: Частково оновлює назву, дерево, порядок і SEO категорії з перевіркою циклів та належності магазину. Після зміни структури перевір category.media: стандартні icon/icon_hover/image треба замінити доречними або прибрати з меню.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | catalog_tree_or_seo_changed | ||
Additional AI safety context
What it touches: catalog.categories, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Стандартні icon/icon_hover/image категорії можуть потрапити в меню як видимі заглушки.
Preflight checks
catalog.categories.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Перевір menu_media_requires_attention; завантаж доречні іконки/картинку або очисти дефолтні поля в адмінці.
Input data (params)
{
"type": "object",
"properties": {
"category_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"category_id",
"patch"
]
}
Result (data)
{
"type": "object"
}
Товари (16)
catalog.buy_together.get — Супутні товари
What it does: Повертає супутні товари для одного товару.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
Result (data)
{
"type": "object"
}
catalog.buy_together.set — Задати супутні товари
What it does: Замінює список супутніх товарів через наявну M2M-модель.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | buy_together_replaced | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"related_product_ids": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
}
}
},
"additionalProperties": false,
"required": [
"product_id",
"related_product_ids"
]
}
Result (data)
{
"type": "object"
}
catalog.product_images.add — Додати фото товару
What it does: Додає завантажене multipart-поле file до галереї; формат і resize перевіряє чинне поле ProductImg.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | media_uploaded | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Активний автоімпорт може перетерти змінені поля товару або відновити видалені дані під час наступного запуску.
Preflight checks
catalog.product_images.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get— Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write)
Safer path
- Змінити або вимкнути мапінг автоімпорту для поля, яке має керуватися вручну.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"file_field": {
"type": "string",
"default": "file"
},
"alt": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
Result (data)
{
"type": "object"
}
catalog.product_images.delete — Видалити фото
What it does: Видаляє одне фото галереї разом із файлом через наявний signal моделі.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | media_deleted | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Активний автоімпорт може перетерти змінені поля товару або відновити видалені дані під час наступного запуску.
Preflight checks
catalog.product_images.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get— Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write)
Safer path
- Змінити або вимкнути мапінг автоімпорту для поля, яке має керуватися вручну.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"image_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id",
"image_id"
]
}
Result (data)
{
"type": "object"
}
catalog.product_images.list — Фото товару
What it does: Повертає головне фото й упорядковану галерею товару з ознаками заглушок. Після встановлення першого реального cover стандартна заглушка може перейти в галерею — знайдіть items[].is_placeholder=true і видаліть її.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Автоматична фото-заглушка не повинна залишатися головним фото або елементом галереї готового товару.
Safer path
- Після set_cover повторно виклич catalog.product_images.list і видали items з is_placeholder=true до публікації.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
Result (data)
{
"type": "object"
}
catalog.product_images.set_cover — Зробити фото головним
What it does: Міняє місцями головне фото товару та вибране фото галереї за чинним UI-патерном. Якщо старим cover була автоматична заглушка, вона перейде в галерею: після операції викличте catalog.product_images.list і видаліть placeholder.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | product_cover_changed | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Активний автоімпорт може перетерти змінені поля товару або відновити видалені дані під час наступного запуску.
- Автоматична фото-заглушка не повинна залишатися головним фото або елементом галереї готового товару.
Preflight checks
catalog.product_images.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get— Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write)
Safer path
- Змінити або вимкнути мапінг автоімпорту для поля, яке має керуватися вручну.
- Після set_cover повторно виклич catalog.product_images.list і видали items з is_placeholder=true до публікації.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"image_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id",
"image_id"
]
}
Result (data)
{
"type": "object"
}
catalog.product_images.update — Оновити фото товару
What it does: Змінює alt і порядок наявного фото галереї.
| Access | write | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | media_metadata_changed | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Активний автоімпорт може перетерти змінені поля товару або відновити видалені дані під час наступного запуску.
Preflight checks
catalog.product_images.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get— Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write)
Safer path
- Змінити або вимкнути мапінг автоімпорту для поля, яке має керуватися вручну.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"image_id": {
"type": "integer",
"minimum": 1
},
"alt": {
"type": "string"
},
"number": {
"type": "integer"
}
},
"additionalProperties": false,
"required": [
"product_id",
"image_id"
]
}
Result (data)
{
"type": "object"
}
catalog.product_specifications.list — Характеристики товару
What it does: Повертає характеристики товару з перекладами.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
Result (data)
{
"type": "object"
}
catalog.product_specifications.replace — Замінити характеристики
What it does: Атомарно замінює весь список характеристик товару; кожен елемент має spec, description і необов'язкові translations.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | product_specifications_replaced | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Активний автоімпорт може перетерти змінені поля товару або відновити видалені дані під час наступного запуску.
Preflight checks
catalog.product_specifications.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get— Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write)
Safer path
- Змінити або вимкнути мапінг автоімпорту для поля, яке має керуватися вручну.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"items": {
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": false,
"required": [
"product_id",
"items"
]
}
Result (data)
{
"type": "object"
}
catalog.products.create — Створити товар
What it does: Створює товар через чинну модель Product, тому автоматичні slug і SKU лишаються єдиним джерелом логіки. За замовчуванням товар не публікується і має стандартне фото-заглушку: додайте реальні фото, зробіть потрібне головним і приберіть заглушку з галереї перед публікацією.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | product_created | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Активний автоімпорт може перетерти змінені поля товару або відновити видалені дані під час наступного запуску.
- Автоматична фото-заглушка не повинна залишатися головним фото або елементом галереї готового товару.
Preflight checks
catalog.products.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get— Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write)
Safer path
- Змінити або вимкнути мапінг автоімпорту для поля, яке має керуватися вручну.
- Після set_cover повторно виклич catalog.product_images.list і видали items з is_placeholder=true до публікації.
Input data (params)
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
},
"additional_category_ids": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
}
}
},
"additionalProperties": false,
"required": [
"title"
]
}
Result (data)
{
"type": "object"
}
catalog.products.delete — Видалити товар
What it does: Переносить товар і його варіації у відновлюваний кошик на 14 днів. Якщо модуль складу увімкнений і є доступний залишок, без zero_stock=true видалення блокується; підтверджений сценарій створює звичайну ревізію до нуля лише для цих товарів. author_user_id активного працівника береться через customers.list. Відновлення картки не відновлює списаний залишок.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | product_and_variations_soft_deleted, live_cart_lines_removed, stock_revision_may_be_posted | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Активний автоімпорт може перетерти змінені поля товару або відновити видалені дані під час наступного запуску.
Preflight checks
catalog.products.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get— Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write)
Safer path
- Змінити або вимкнути мапінг автоімпорту для поля, яке має керуватися вручну.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"zero_stock": {
"type": "boolean",
"default": false
},
"author_user_id": {
"type": "integer",
"minimum": 1,
"description": "ID активного працівника цього магазину з customers.list; обов'язковий для автоматичної ревізії."
},
"responsible_user_id": {
"type": "integer",
"description": "Deprecated alias for author_user_id."
},
"reset_stock": {
"type": "boolean",
"description": "Deprecated alias for zero_stock."
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
Result (data)
{
"type": "object"
}
catalog.products.get — Дані товару
What it does: Повертає повну безпечну картку товару, переклади, SEO, категорії та пов'язані дані. image_is_placeholder=true означає, що товар досі має автоматичну заглушку, яку треба замінити до публікації.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"include_deleted": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
Result (data)
{
"type": "object"
}
catalog.products.list — Список товарів
What it does: Повертає товари з пошуком, фільтрами категорії, публікації, архіву, варіацій і залишку.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"category_id": {
"type": "integer",
"minimum": 1
},
"is_published": {
"type": "boolean"
},
"is_archival": {
"type": "boolean"
},
"father_id": {
"type": [
"integer",
"null"
]
},
"stock": {
"type": "string",
"enum": [
"any",
"positive",
"zero"
]
},
"deletion_status": {
"type": "string",
"enum": [
"active",
"deleted",
"all"
],
"default": "active"
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
catalog.products.restore — Відновити товар
What it does: Відновлює товар і все його сімейство варіацій із 14-денного кошика. Складські залишки, списані ревізією під час видалення, не повертаються.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | product_and_variations_restored, stock_not_restored | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Активний автоімпорт може перетерти змінені поля товару або відновити видалені дані під час наступного запуску.
Preflight checks
catalog.products.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get— Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write)
Safer path
- Змінити або вимкнути мапінг автоімпорту для поля, яке має керуватися вручну.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
Result (data)
{
"type": "object"
}
catalog.products.update — Оновити товар
What it does: Частково оновлює дозволені поля товару й переклади; бізнес-логіка save() для slug/SKU не дублюється.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | product_changed | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Активний автоімпорт може перетерти змінені поля товару або відновити видалені дані під час наступного запуску.
- Якщо склад увімкнений, patch.warehouse_count заборонений: створи ревізію, перевір її й проведи після підтвердження.
Preflight checks
catalog.products.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get— Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write)settings.modules.get— Перевір, чи ввімкнений склад, перш ніж пропонувати зміну warehouse_count. (when_warehouse_count_requested)
Safer path
- Змінити або вимкнути мапінг автоімпорту для поля, яке має керуватися вручну.
- warehouse.revisions.create
- warehouse.revisions.post
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
},
"additional_category_ids": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
}
},
"expected_updated_at": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"product_id",
"patch"
]
}
Result (data)
{
"type": "object"
}
catalog.products.visibility.set — Публікація товару
What it does: Вузько змінює стани публікації та архіву товару.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | storefront_visibility_changed | ||
Additional AI safety context
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Активний автоімпорт може перетерти змінені поля товару або відновити видалені дані під час наступного запуску.
Preflight checks
catalog.products.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get— Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write)
Safer path
- Змінити або вимкнути мапінг автоімпорту для поля, яке має керуватися вручну.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"is_published": {
"type": "boolean"
},
"is_archival": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
Result (data)
{
"type": "object"
}
Upsell-групи (19)
catalog.product_upsells.attach — Прикріпити upsell-групу
What it does: Прикріплює групу лише до вказаного Product; батько та дочірні варіації не змінюються.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | product_upsell_attached | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
catalog.product_upsells.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"group_id": {
"type": "integer",
"minimum": 1
},
"selection_type_override": {
"type": "string",
"enum": [
"",
"single",
"multiple"
]
},
"max_selected_override": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"is_active": {
"type": "boolean"
},
"number": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false,
"required": [
"product_id",
"group_id"
]
}
Result (data)
{
"type": "object"
}
catalog.product_upsells.detach — Від’єднати upsell-групу
What it does: Видаляє одну товарну прив’язку та її overrides, але не видаляє групу з бібліотеки.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | product_upsell_detached | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
catalog.product_upsells.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"assignment_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"assignment_id"
]
}
Result (data)
{
"type": "object"
}
catalog.product_upsells.get — Прив’язка upsell до товару
What it does: Повертає одну товарну прив’язку та локальні overrides її опцій.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"assignment_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"assignment_id"
]
}
Result (data)
{
"type": "object"
}
catalog.product_upsells.list — Upsell-групи товару
What it does: Повертає точні прив’язки конкретного Product. Варіації не успадковуються неявно і мають власні прив’язки.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
Result (data)
{
"type": "object"
}
catalog.product_upsells.overrides.clear — Скинути локальний override upsell
What it does: Видаляє локальне перевизначення; товар знову використовує активність і ціну спільної опції.
| Access | write | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | product_upsell_option_override_cleared | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
Preflight checks
catalog.product_upsells.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"assignment_id": {
"type": "integer",
"minimum": 1
},
"option_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"assignment_id",
"option_id"
]
}
Result (data)
{
"type": "object"
}
catalog.product_upsells.overrides.set — Задати локальну ціну upsell
What it does: Створює або оновлює локальну доступність і доплату опції лише для одного товару. null успадковує базову ціну, 0 явно задає нуль.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | product_upsell_option_overridden | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
catalog.product_upsells.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"assignment_id": {
"type": "integer",
"minimum": 1
},
"option_id": {
"type": "integer",
"minimum": 1
},
"is_enabled": {
"type": "boolean"
},
"price_delta_override": {
"type": [
"integer",
"null"
],
"minimum": 0
}
},
"additionalProperties": false,
"required": [
"assignment_id",
"option_id"
]
}
Result (data)
{
"type": "object"
}
catalog.product_upsells.update — Оновити товарний upsell
What it does: Змінює лише локальні правила прив’язки, не редагуючи спільну групу чи інші товари.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | product_upsell_rules_changed | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
catalog.product_upsells.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"assignment_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"assignment_id",
"patch"
]
}
Result (data)
{
"type": "object"
}
catalog.upsell_groups.create — Створити upsell-групу
What it does: Створює shop-scoped групу в бібліотеці. Опції додаються вузьким методом catalog.upsell_options.create.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | upsell_group_created | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
catalog.upsell_groups.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"selection_type": {
"type": "string",
"enum": [
"single",
"multiple"
]
},
"max_selected": {
"type": "integer",
"minimum": 0
},
"is_reusable": {
"type": "boolean"
},
"is_active": {
"type": "boolean"
},
"number": {
"type": "integer",
"minimum": 0
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"title"
]
}
Result (data)
{
"type": "object"
}
catalog.upsell_groups.delete — Видалити upsell-групу
What it does: Видаляє групу, її опції та всі товарні прив’язки; snapshots у кошиках і замовленнях зберігаються.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | upsell_group_and_assignments_deleted | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
catalog.upsell_groups.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"group_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"group_id"
]
}
Result (data)
{
"type": "object"
}
catalog.upsell_groups.get — Upsell-група
What it does: Повертає групу, переклади, усі її опції та товари, до яких вона прикріплена.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"group_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"group_id"
]
}
Result (data)
{
"type": "object"
}
catalog.upsell_groups.list — Бібліотека upsell-груп
What it does: Повертає лише upsell-групи магазину токена з кількістю опцій і товарних прив’язок.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"is_active": {
"type": "boolean"
},
"is_reusable": {
"type": "boolean"
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
catalog.upsell_groups.update — Оновити upsell-групу
What it does: Частково оновлює спільні правила групи. Зміна вплине на всі прив’язані товари без локального override.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | shared_upsell_group_changed | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
catalog.upsell_groups.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"group_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"group_id",
"patch"
]
}
Result (data)
{
"type": "object"
}
catalog.upsell_options.create — Додати upsell-опцію
What it does: Додає опцію до групи того самого магазину; price_delta є доплатою до ціни товару.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | upsell_option_created | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
catalog.upsell_options.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"group_id": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"price_delta": {
"type": "integer",
"minimum": 0
},
"is_active": {
"type": "boolean"
},
"number": {
"type": "integer",
"minimum": 0
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"group_id",
"title"
]
}
Result (data)
{
"type": "object"
}
catalog.upsell_options.delete — Видалити upsell-опцію
What it does: Видаляє спільну опцію та її overrides; snapshots уже створених кошиків і замовлень зберігаються.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | upsell_option_and_overrides_deleted | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
catalog.upsell_options.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"option_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"option_id"
]
}
Result (data)
{
"type": "object"
}
catalog.upsell_options.get — Upsell-опція
What it does: Повертає одну опцію з базовою доплатою та перекладами.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"option_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"option_id"
]
}
Result (data)
{
"type": "object"
}
catalog.upsell_options.image.delete — Видалити картинку upsell-опції
What it does: Видаляє необов’язкову картинку опції; текстовий вигляд upsell лишається доступним.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | upsell_option_media_deleted | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
catalog.upsell_options.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"option_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"option_id"
]
}
Result (data)
{
"type": "object"
}
catalog.upsell_options.image.set — Завантажити картинку upsell-опції
What it does: Встановлює або замінює необов’язкову картинку опції з multipart-поля; чинний ResizedImageField нормалізує файл у WEBP.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | upsell_option_media_changed | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
catalog.upsell_options.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"option_id": {
"type": "integer",
"minimum": 1
},
"file_field": {
"type": "string",
"default": "file"
}
},
"additionalProperties": false,
"required": [
"option_id"
]
}
Result (data)
{
"type": "object"
}
catalog.upsell_options.list — Опції upsell-групи
What it does: Повертає shop-scoped опції однієї групи з базовими доплатами.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"group_id": {
"type": "integer",
"minimum": 1
},
"is_active": {
"type": "boolean"
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
catalog.upsell_options.update — Оновити upsell-опцію
What it does: Оновлює базову опцію. Нова доплата застосовується до товарів, де немає власного price override.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | shared_upsell_option_changed | ||
Additional AI safety context
What it touches: catalog.upsells, storefront.product, cart.pricing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
catalog.upsell_options.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"option_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"option_id",
"patch"
]
}
Result (data)
{
"type": "object"
}
Фільтри й варіації (12)
catalog.filter_values.create — Створити значення фільтра
What it does: Додає текстове або кольорове значення до фільтра.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | filter_value_created | ||
Additional AI safety context
What it touches: catalog.filters, catalog.variations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Input data (params)
{
"type": "object",
"properties": {
"filter_id": {
"type": "integer",
"minimum": 1
},
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"filter_id",
"data"
]
}
Result (data)
{
"type": "object"
}
catalog.filter_values.delete — Видалити значення фільтра
What it does: Видаляє значення та його прив'язки до товарів.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | filter_value_deleted, product_filter_links_deleted | ||
Additional AI safety context
What it touches: catalog.filters, catalog.variations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Input data (params)
{
"type": "object",
"properties": {
"value_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"value_id"
]
}
Result (data)
{
"type": "object"
}
catalog.filter_values.update — Оновити значення фільтра
What it does: Частково оновлює назву, колір, активність і порядок значення.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | filter_value_changed | ||
Additional AI safety context
What it touches: catalog.filters, catalog.variations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Input data (params)
{
"type": "object",
"properties": {
"value_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"value_id",
"patch"
]
}
Result (data)
{
"type": "object"
}
catalog.filters.create — Створити фільтр
What it does: Створює фільтр checkbox, color або image через чинну модель.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | catalog_filter_created | ||
Additional AI safety context
What it touches: catalog.filters, catalog.variations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Input data (params)
{
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"data"
]
}
Result (data)
{
"type": "object"
}
catalog.filters.delete — Видалити фільтр
What it does: Видаляє фільтр, його значення та прив'язки товарів каскадно.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | catalog_filter_deleted, product_filter_links_deleted | ||
Additional AI safety context
What it touches: catalog.filters, catalog.variations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Input data (params)
{
"type": "object",
"properties": {
"filter_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"filter_id"
]
}
Result (data)
{
"type": "object"
}
catalog.filters.get — Дані фільтра
What it does: Повертає один фільтр та всі його значення.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.filters, catalog.variations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"filter_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"filter_id"
]
}
Result (data)
{
"type": "object"
}
catalog.filters.list — Список фільтрів
What it does: Повертає фільтри каталогу та їх значення.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.filters, catalog.variations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
catalog.filters.update — Оновити фільтр
What it does: Частково оновлює дозволені поля фільтра.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | catalog_filter_changed | ||
Additional AI safety context
What it touches: catalog.filters, catalog.variations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Input data (params)
{
"type": "object",
"properties": {
"filter_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"filter_id",
"patch"
]
}
Result (data)
{
"type": "object"
}
catalog.product_filters.get — Атрибути товару
What it does: Повертає значення фільтрів, призначені конкретному SKU.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.filters, catalog.variations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
Result (data)
{
"type": "object"
}
catalog.product_filters.set — Задати атрибути товару
What it does: Замінює прив'язки фільтрів товару атомарно; один фільтр може мати одне значення для SKU.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | product_filter_links_replaced | ||
Additional AI safety context
What it touches: catalog.filters, catalog.variations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Активний автоімпорт може перетерти змінені поля товару або відновити видалені дані під час наступного запуску.
Preflight checks
catalog.product_filters.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get— Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write)
Safer path
- Змінити або вимкнути мапінг автоімпорту для поля, яке має керуватися вручну.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"filter_id": {
"type": "integer",
"minimum": 1
},
"value_id": {
"type": "integer",
"minimum": 1
}
}
}
}
},
"additionalProperties": false,
"required": [
"product_id",
"items"
]
}
Result (data)
{
"type": "object"
}
catalog.variations.get — Варіації товару
What it does: Повертає кореневий товар і впорядковані дочірні SKU.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.filters, catalog.variations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
Result (data)
{
"type": "object"
}
catalog.variations.set — Задати варіації товару
What it does: Атомарно замінює дочірні SKU кореневого товару й синхронізує поле father так само, як чинний admin inline.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | variation_family_rebuilt | ||
Additional AI safety context
What it touches: catalog.filters, catalog.variations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Input data (params)
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"child_ids": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
}
}
},
"additionalProperties": false,
"required": [
"product_id",
"child_ids"
]
}
Result (data)
{
"type": "object"
}
Сторінки та контент (49)
Сторінки (10)
pages.copy — Створити копію сторінки
What it does: Створює неопубліковану незалежну копію сторінки поточного магазину разом з усіма активними блоками, перекладами та окремими копіями assets. Це рекомендована точка відкату перед широкою зміною дизайну всієї сторінки; для точкової зміни одного блока достатньо block snapshot.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | unpublished_page_copy_created, block_assets_copied | ||
Additional AI safety context
What it touches: pages, storefront.routing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Копія збільшує використання файлового сховища, бо assets фізично копіюються; вона завжди створюється неопублікованою.
Preflight checks
pages.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Для однієї вузької зміни створи snapshot лише відповідного блока замість повної копії сторінки.
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string",
"maxLength": 300
},
"slug": {
"type": "string",
"maxLength": 300
}
},
"additionalProperties": false,
"required": [
"page_id"
]
}
Result (data)
{
"type": "object"
}
pages.create — Створити сторінку
What it does: Створює звичайну сторінку через чинну модель Page; за замовчуванням не публікує її.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | page_created | ||
Additional AI safety context
What it touches: pages, storefront.routing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
pages.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"title"
]
}
Result (data)
{
"type": "object"
}
pages.delete — Видалити сторінку
What it does: Переносить сторінку в кошик на 14 днів без видалення її блоків і файлів. Storefront та runtime одразу перестають її використовувати; до остаточного очищення сторінку можна відновити.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | page_soft_deleted, storefront_page_hidden | ||
Additional AI safety context
What it touches: pages, storefront.routing
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
pages.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"page_id"
]
}
Result (data)
{
"type": "object"
}
pages.get — Дані сторінки
What it does: Повертає сторінку з перекладами, SEO, meta та впорядкованими блоками.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: pages, storefront.routing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"include_deleted": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false,
"required": [
"page_id"
]
}
Result (data)
{
"type": "object"
}
pages.layouts.get — Runtime-сторінки
What it does: Повертає сторінки, призначені для каталогу, категорії, товару та checkout.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: pages, storefront.routing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
pages.layouts.set — Призначити runtime-сторінку
What it does: Призначає наявну сторінку магазину для каталогу, категорії, товару або checkout через чинні layout-моделі.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | runtime_route_page_changed | ||
Additional AI safety context
What it touches: pages, storefront.routing
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
pages.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"runtime_context": {
"type": "string",
"enum": [
"catalog",
"category",
"product",
"checkout"
]
},
"page_id": {
"type": [
"integer",
"null"
]
}
},
"additionalProperties": false,
"required": [
"runtime_context",
"page_id"
]
}
Result (data)
{
"type": "object"
}
pages.list — Список сторінок
What it does: Повертає сторінки магазину, їх URL, роль у runtime, кількість активних блоків і статус кошика.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: pages, storefront.routing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"include_unpublished": {
"type": "boolean",
"default": true
},
"runtime_context": {
"type": "string"
},
"deletion_status": {
"type": "string",
"enum": [
"active",
"deleted",
"all"
],
"default": "active"
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
pages.restore — Відновити сторінку
What it does: Відновлює сторінку з 14-денного кошика. Її активні блоки знову рендеряться, але блоки, видалені окремо, залишаються у кошику блоків до окремого відновлення.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | page_restored, storefront_page_may_return | ||
Additional AI safety context
What it touches: pages, storefront.routing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
pages.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"page_id"
]
}
Result (data)
{
"type": "object"
}
pages.update — Оновити сторінку
What it does: Частково оновлює назву, URL, SEO, meta та переклади; не змінює блоки й публікацію.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | page_metadata_changed | ||
Additional AI safety context
What it touches: pages, storefront.routing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
pages.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"page_id",
"patch"
]
}
Result (data)
{
"type": "object"
}
pages.visibility.set — Публікація сторінки
What it does: Вузько публікує або приховує сторінку.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | storefront_visibility_changed | ||
Additional AI safety context
What it touches: pages, storefront.routing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
pages.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"is_published": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"page_id",
"is_published"
]
}
Result (data)
{
"type": "object"
}
Блоки (17)
pages.block_snapshots.create — Зберегти знімок блока
What it does: Створює незмінний shop-scoped знімок блока сторінки, статті або головної блогу разом із перекладами, налаштуваннями та фізичними копіями файлів. Для широкого редизайну використовуй pages.copy, blog.articles.copy або знімки всіх блоків головної блогу.
| Access | write | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | block_snapshot_created, media_copied | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Знімок фіксує один блок, а не всю сторінку/статтю: metadata і загальний порядок блоків не версіонуються атомарно.
Preflight checks
pages.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Для контрольної версії матеріалу збережи snapshot кожного активного блока та окремо зафіксуй його position із pages.blocks.list.
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"article_id": {
"type": "integer",
"minimum": 1
},
"blog_settings_id": {
"type": "integer",
"minimum": 1
},
"block_id": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string",
"maxLength": 160
}
},
"additionalProperties": false,
"required": [
"block_id",
"title"
]
}
Result (data)
{
"type": "object"
}
pages.block_snapshots.delete — Видалити збережений блок
What it does: Безповоротно видаляє знімок блока та його незалежні копії assets. Уже створені зі знімка блоки не змінюються.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | block_snapshot_deleted, snapshot_media_deleted | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Знімок фіксує один блок, а не всю сторінку/статтю: metadata і загальний порядок блоків не версіонуються атомарно.
Preflight checks
pages.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Для контрольної версії матеріалу збережи snapshot кожного активного блока та окремо зафіксуй його position із pages.blocks.list.
Input data (params)
{
"type": "object",
"properties": {
"snapshot_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"snapshot_id"
]
}
Result (data)
{
"type": "object"
}
pages.block_snapshots.get — Дані збереженого блока
What it does: Повертає повний immutable payload знімка: content, переклади, design, data_config, extra та власні копії assets.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Знімок фіксує один блок, а не всю сторінку/статтю: metadata і загальний порядок блоків не версіонуються атомарно.
Safer path
- Для контрольної версії матеріалу збережи snapshot кожного активного блока та окремо зафіксуй його position із pages.blocks.list.
Input data (params)
{
"type": "object",
"properties": {
"snapshot_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"snapshot_id"
]
}
Result (data)
{
"type": "object"
}
pages.block_snapshots.instantiate — Додати збережений блок
What it does: Створює у сторінці або статті новий блок і uid із зафіксованого payload. Assets копіюються заново; metadata власника цей механізм не відновлює.
| Access | write | Risk | dynamic |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | page_content_changed, media_copied | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Оціни фактичні поля; для HTML, секретів, індексації чи широкої зміни отримай явне підтвердження.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Ризик залежить від полів і контенту; перевір параметри та обери найвужчий метод.
- Знімок фіксує один блок, а не всю сторінку/статтю: metadata і загальний порядок блоків не версіонуються атомарно.
Preflight checks
pages.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Для контрольної версії матеріалу збережи snapshot кожного активного блока та окремо зафіксуй його position із pages.blocks.list.
Input data (params)
{
"type": "object",
"properties": {
"snapshot_id": {
"type": "integer",
"minimum": 1
},
"page_id": {
"type": "integer",
"minimum": 1
},
"article_id": {
"type": "integer",
"minimum": 1
},
"blog_settings_id": {
"type": "integer",
"minimum": 1
},
"insert_mode": {
"type": "string",
"enum": [
"end",
"before",
"after"
]
},
"target_block_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"snapshot_id"
]
}
Result (data)
{
"type": "object"
}
pages.block_snapshots.list — Збережені блоки
What it does: Повертає незалежні знімки блоків лише поточного магазину. Вони придатні для сторінок і статей: повна версія потребує snapshot кожного активного блока та окремо збереженого position.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Знімок фіксує один блок, а не всю сторінку/статтю: metadata і загальний порядок блоків не версіонуються атомарно.
Safer path
- Для контрольної версії матеріалу збережи snapshot кожного активного блока та окремо зафіксуй його position із pages.blocks.list.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
pages.blocks.catalog — Каталог блоків
What it does: Повертає реальний registry page builder: групи, всі зареєстровані типи блоків, контексти, schemas, defaults і контракт backend/runtime-даних. Для html_code тут описані окремі opt-in перемикачі безпечного JSON (усі за замовчуванням вимкнені) і медіатека images до 30 зображень для [[image:ключ]].
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | public, shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- html_code не відкриває Python або сирий backend. Безпечний JSON для браузера з'являється лише через явно ввімкнені expose_* поля; не вмикай набори, які UI не використовує.
Preflight checks
pages.blocks.catalog— Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design)
Safer path
- Спочатку використай стандартний block provider; для власного UI ввімкни лише потрібні частини shopcore.html-block-data.v1 і врахуй ліміт товарів.
Input data (params)
{
"type": "object",
"properties": {
"block_code": {
"type": "string"
},
"runtime_context": {
"type": "string"
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
pages.blocks.create — Створити блок
What it does: Вставляє зареєстрований блок у сторінку, статтю або головну блогу через єдиний BuilderProvider. Передайте рівно один page_id/article_id/blog_settings_id.
| Access | write | Risk | dynamic |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | content_changed | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Оціни фактичні поля; для HTML, секретів, індексації чи широкої зміни отримай явне підтвердження.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Ризик залежить від полів і контенту; перевір параметри та обери найвужчий метод.
- html_code не відкриває Python або сирий backend. Безпечний JSON для браузера з'являється лише через явно ввімкнені expose_* поля; не вмикай набори, які UI не використовує.
Preflight checks
pages.blocks.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)pages.blocks.catalog— Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design)
Safer path
- Спочатку використай стандартний block provider; для власного UI ввімкни лише потрібні частини shopcore.html-block-data.v1 і врахуй ліміт товарів.
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"article_id": {
"type": "integer",
"minimum": 1
},
"blog_settings_id": {
"type": "integer",
"minimum": 1
},
"block_code": {
"type": "string"
},
"insert_mode": {
"type": "string",
"enum": [
"end",
"before",
"after"
]
},
"target_block_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"block_code"
]
}
Result (data)
{
"type": "object"
}
pages.blocks.delete — Видалити блок
What it does: Переносить блок сторінки, статті або головної блогу у кошик на 14 днів; переклади й assets зберігаються для відновлення.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | block_soft_deleted, block_hidden_from_render | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- html_code не відкриває Python або сирий backend. Безпечний JSON для браузера з'являється лише через явно ввімкнені expose_* поля; не вмикай набори, які UI не використовує.
Preflight checks
pages.blocks.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)pages.blocks.catalog— Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design)
Safer path
- Спочатку використай стандартний block provider; для власного UI ввімкни лише потрібні частини shopcore.html-block-data.v1 і врахуй ліміт товарів.
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"article_id": {
"type": "integer",
"minimum": 1
},
"blog_settings_id": {
"type": "integer",
"minimum": 1
},
"block_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"block_id"
]
}
Result (data)
{
"type": "object"
}
pages.blocks.enabled.set — Увімкнути або вимкнути блок
What it does: Вузько змінює видимість одного блока сторінки, статті або головної блогу без видалення контенту.
| Access | write | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | block_visibility_changed | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- html_code не відкриває Python або сирий backend. Безпечний JSON для браузера з'являється лише через явно ввімкнені expose_* поля; не вмикай набори, які UI не використовує.
Preflight checks
pages.blocks.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)pages.blocks.catalog— Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design)
Safer path
- Спочатку використай стандартний block provider; для власного UI ввімкни лише потрібні частини shopcore.html-block-data.v1 і врахуй ліміт товарів.
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"article_id": {
"type": "integer",
"minimum": 1
},
"blog_settings_id": {
"type": "integer",
"minimum": 1
},
"block_id": {
"type": "integer",
"minimum": 1
},
"is_enabled": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"block_id",
"is_enabled"
]
}
Result (data)
{
"type": "object"
}
pages.blocks.get — Дані блока
What it does: Повертає один блок сторінки, статті або головної блогу разом із чинними schemas та значеннями. Передайте рівно один page_id/article_id/blog_settings_id.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- html_code не відкриває Python або сирий backend. Безпечний JSON для браузера з'являється лише через явно ввімкнені expose_* поля; не вмикай набори, які UI не використовує.
Preflight checks
pages.blocks.catalog— Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design)
Safer path
- Спочатку використай стандартний block provider; для власного UI ввімкни лише потрібні частини shopcore.html-block-data.v1 і врахуй ліміт товарів.
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"article_id": {
"type": "integer",
"minimum": 1
},
"blog_settings_id": {
"type": "integer",
"minimum": 1
},
"block_id": {
"type": "integer",
"minimum": 1
},
"include_deleted": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false,
"required": [
"block_id"
]
}
Result (data)
{
"type": "object"
}
pages.blocks.list — Блоки сторінки, статті або головної блогу
What it does: Спільний метод повертає блоки сторінки, статті або головної сторінки блогу. Передайте рівно один page_id/article_id/blog_settings_id; бібліотека, схеми й рендерер спільні.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- html_code не відкриває Python або сирий backend. Безпечний JSON для браузера з'являється лише через явно ввімкнені expose_* поля; не вмикай набори, які UI не використовує.
Preflight checks
pages.blocks.catalog— Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design)
Safer path
- Спочатку використай стандартний block provider; для власного UI ввімкни лише потрібні частини shopcore.html-block-data.v1 і врахуй ліміт товарів.
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"article_id": {
"type": "integer",
"minimum": 1
},
"blog_settings_id": {
"type": "integer",
"minimum": 1
},
"deletion_status": {
"type": "string",
"enum": [
"active",
"deleted",
"all"
],
"default": "active"
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
pages.blocks.media.delete — Прибрати зображення з блока
What it does: Очищає одне поле зображення блока (той самий field, що в pages.blocks.media.set) і видаляє файл, завантажений у це поле. Інші поля, елементи repeater і тексти не змінюються. Для перекладного поля без language очищає його для всіх мов магазину. Для медіатеки html_code (images) remove_item=true прибирає елемент повністю разом із ключем; [[image:ключ]] у HTML після цього нічого не підставить, тож спершу прибери його з HTML.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | content_changed, block_media_deleted, media_file_deleted | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- html_code не відкриває Python або сирий backend. Безпечний JSON для браузера з'являється лише через явно ввімкнені expose_* поля; не вмикай набори, які UI не використовує.
Preflight checks
pages.blocks.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)pages.blocks.catalog— Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design)
Safer path
- Спочатку використай стандартний block provider; для власного UI ввімкни лише потрібні частини shopcore.html-block-data.v1 і врахуй ліміт товарів.
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"article_id": {
"type": "integer",
"minimum": 1
},
"blog_settings_id": {
"type": "integer",
"minimum": 1
},
"block_id": {
"type": "integer",
"minimum": 1
},
"field": {
"type": "string",
"maxLength": 255,
"description": "Шлях поля зображення з media_fields блока: background_image або для repeater slides.0.image."
},
"language": {
"type": "string",
"description": "Лише для перекладного поля: код мови. Якщо не передано, зміна застосовується до всіх увімкнених мов магазину."
},
"remove_item": {
"type": "boolean",
"default": false,
"description": "Лише для медіатеки: прибрати елемент повністю."
},
"expected_updated_at": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"block_id",
"field"
]
}
Result (data)
{
"type": "object"
}
pages.blocks.media.set — Завантажити зображення в блок
What it does: Завантажує власне зображення агента в одне поле зображення блока сторінки, статті або головної блогу й одразу записує його URL у блок. Надішліть multipart/form-data: method, params_json, options_json і файл (поле file або назва з file_field). Шлях field беріть із media_fields відповіді pages.blocks.get: звичайне поле (background_image) або елемент repeater (slides.0.image). Змінюється лише вказане поле, сусідні елементи repeater і тексти зберігаються. Поле type=image приймає JPG/PNG/WEBP/GIF і конвертує їх у WEBP до 2400px; image_asset додатково приймає безпечний SVG до 1 МБ. Максимум 15 МБ. Для перекладного поля без language картинка ставиться для всіх мов магазину. Файл належить лише цьому блоку магазину; попередній файл цього поля видаляється. Для html_code є медіатека images (до 30 зображень, лише JPG/PNG/WEBP/GIF → WEBP): додай зображення з append=true і field=images.{item_count}.image, задай item.key; у HTML вставляй [[image:ключ]] — сервер підставить поточний URL, тож після заміни зображення HTML міняти не треба. Відповідь повертає library_item з ключем, URL і токеном.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | content_changed, block_media_uploaded, old_media_file_deleted | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- html_code не відкриває Python або сирий backend. Безпечний JSON для браузера з'являється лише через явно ввімкнені expose_* поля; не вмикай набори, які UI не використовує.
Preflight checks
pages.blocks.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)pages.blocks.catalog— Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design)
Safer path
- Спочатку використай стандартний block provider; для власного UI ввімкни лише потрібні частини shopcore.html-block-data.v1 і врахуй ліміт товарів.
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"article_id": {
"type": "integer",
"minimum": 1
},
"blog_settings_id": {
"type": "integer",
"minimum": 1
},
"block_id": {
"type": "integer",
"minimum": 1
},
"field": {
"type": "string",
"maxLength": 255,
"description": "Шлях поля зображення з media_fields блока: background_image або для repeater slides.0.image."
},
"language": {
"type": "string",
"description": "Лише для перекладного поля: код мови. Якщо не передано, зміна застосовується до всіх увімкнених мов магазину."
},
"file_field": {
"type": "string",
"default": "file"
},
"append": {
"type": "boolean",
"default": false,
"description": "Лише для медіатеки (media_library=true, наприклад images у html_code): додати новий елемент; index у field має дорівнювати item_count."
},
"item": {
"type": "object",
"description": "Лише для медіатеки: текстові поля елемента з item_fields, наприклад {\"key\": \"hero\", \"alt\": \"Опис\"}."
},
"expected_updated_at": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"block_id",
"field"
]
}
Result (data)
{
"type": "object"
}
pages.blocks.move — Перемістити блок
What it does: Міняє блок сторінки, статті або головної блогу місцями з сусіднім за чинним алгоритмом builder UI.
| Access | write | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | block_order_changed | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- html_code не відкриває Python або сирий backend. Безпечний JSON для браузера з'являється лише через явно ввімкнені expose_* поля; не вмикай набори, які UI не використовує.
Preflight checks
pages.blocks.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)pages.blocks.catalog— Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design)
Safer path
- Спочатку використай стандартний block provider; для власного UI ввімкни лише потрібні частини shopcore.html-block-data.v1 і врахуй ліміт товарів.
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"article_id": {
"type": "integer",
"minimum": 1
},
"blog_settings_id": {
"type": "integer",
"minimum": 1
},
"block_id": {
"type": "integer",
"minimum": 1
},
"direction": {
"type": "string",
"enum": [
"up",
"down"
]
}
},
"additionalProperties": false,
"required": [
"block_id",
"direction"
]
}
Result (data)
{
"type": "object"
}
pages.blocks.restore — Відновити блок
What it does: Відновлює блок із кошика конкретної сторінки, статті або головної блогу разом із перекладами та assets.
| Access | write | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | block_restored, content_render_changed | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- html_code не відкриває Python або сирий backend. Безпечний JSON для браузера з'являється лише через явно ввімкнені expose_* поля; не вмикай набори, які UI не використовує.
Preflight checks
pages.blocks.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)pages.blocks.catalog— Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design)
Safer path
- Спочатку використай стандартний block provider; для власного UI ввімкни лише потрібні частини shopcore.html-block-data.v1 і врахуй ліміт товарів.
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"article_id": {
"type": "integer",
"minimum": 1
},
"blog_settings_id": {
"type": "integer",
"minimum": 1
},
"block_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"block_id"
]
}
Result (data)
{
"type": "object"
}
pages.blocks.runtime_guide — Backend-дані блоків
What it does: Пояснює server-side render pipeline, фактичні поля get_base_data/get_products, route-контексти та дані кожного динамічного блока; для власного HTML документує opt-in JSON shopcore.html-block-data.v1, ліміти та заборонені приватні дані.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | public, shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- html_code не відкриває Python або сирий backend. Безпечний JSON для браузера з'являється лише через явно ввімкнені expose_* поля; не вмикай набори, які UI не використовує.
Preflight checks
pages.blocks.catalog— Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design)
Safer path
- Спочатку використай стандартний block provider; для власного UI ввімкни лише потрібні частини shopcore.html-block-data.v1 і врахуй ліміт товарів.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
pages.blocks.update — Оновити блок
What it does: Частково оновлює блок сторінки, статті або головної блогу через ті самі schemas і validators, що й builder UI. Передайте рівно один page_id/article_id/blog_settings_id. Верхньорівневі ключі content зливаються з чинними, але repeater-поле (наприклад slides або items) замінюється цілим масивом, тому передавайте його повністю. Файли можна додати multipart-полями upload__shared__<field> або upload__translated__<lang>__<field> навіть без content; для однієї картинки простіше використовувати pages.blocks.media.set.
| Access | write | Risk | dynamic |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | content_changed, media_may_change | ||
Additional AI safety context
What it touches: pages.blocks, storefront.layout
Decision rule: Оціни фактичні поля; для HTML, секретів, індексації чи широкої зміни отримай явне підтвердження.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Ризик залежить від полів і контенту; перевір параметри та обери найвужчий метод.
- html_code не відкриває Python або сирий backend. Безпечний JSON для браузера з'являється лише через явно ввімкнені expose_* поля; не вмикай набори, які UI не використовує.
Preflight checks
pages.blocks.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)pages.blocks.catalog— Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design)
Safer path
- Спочатку використай стандартний block provider; для власного UI ввімкни лише потрібні частини shopcore.html-block-data.v1 і врахуй ліміт товарів.
Input data (params)
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"article_id": {
"type": "integer",
"minimum": 1
},
"blog_settings_id": {
"type": "integer",
"minimum": 1
},
"block_id": {
"type": "integer",
"minimum": 1
},
"content": {
"type": "object",
"properties": {
"shared": {
"type": "object"
},
"translated": {
"type": "object"
}
}
},
"design": {
"type": "object"
},
"data_config": {
"type": "object"
},
"extra": {
"type": "object"
},
"expected_updated_at": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"block_id"
]
}
Result (data)
{
"type": "object"
}
Блог (22)
Статті (10)
blog.articles.copy — Створити копію статті
What it does: Створює чернетку статті з незалежними копіями всіх активних блоків та assets; рекомендовано перед широким редизайном статті.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_article_copy_created, block_assets_copied | ||
Additional AI safety context
What it touches: blog.articles, pages.blocks, storefront.routing, seo
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Копія статті є чернеткою і фізично копіює assets блоків, тому збільшує використання сховища.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.articles.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Для вузької зміни одного блока створи лише snapshot цього блока.
Input data (params)
{
"type": "object",
"properties": {
"article_id": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"article_id"
]
}
Result (data)
{
"type": "object"
}
blog.articles.create — Створити статтю блогу
What it does: Створює незалежну статтю без технічної Page та 9 стартових блоків із українським текстом-рибою. Перший блок — штатний hero_centered: він містить shop-scoped картинку, заголовок із назви створюваної статті та підзаголовок з excerpt або тексту-підказки. Коли цей маркований блок стоїть першим, окрема штатна шапка матеріалу перед ним не рендериться — обкладинка є справжнім першим екраном і єдиним H1. Автоматичний шаблон не заповнює поле BlogArticle.cover, тому весь стартовий матеріал можна видалити як звичайні блоки й отримати чисту статтю. За замовчуванням це чернетка. Спочатку прочитайте pages.blocks.list з article_id, замініть текст-рибу та налаштування через pages.blocks.update або видаліть непотрібні блоки; додаткові блоки — pages.blocks.create. Перед публікацією замініть картинку першого hero_centered через multipart pages.blocks.update, передавши файл у полі upload__shared__background_image, і перевірте його заголовок та підзаголовок. Переклад контенту блоків uk, для інших мов додайте переклади блоків. Не публікуйте текст-рибу як готовий матеріал. Окремі поля статті cover та og_image, якщо вони свідомо потрібні поза стартовим блоковим шаблоном, як і раніше підтримують multipart та blog.articles.media.set/delete. Копіювання через blog.articles.copy переносить лише блоки й медіа оригіналу без домішування стартового макета.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_article_created, starter_blocks_created, starter_block_media_created | ||
Additional AI safety context
What it touches: blog.articles, pages.blocks, storefront.routing, seo
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.articles.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"title"
]
}
Result (data)
{
"type": "object"
}
blog.articles.delete — Видалити статтю блогу
What it does: М'яко видаляє статтю на 14 днів; URL одразу зникає. Її блоки й assets фізично зберігаються, а стан блоків у кошику не змінюється.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_article_soft_deleted, blog_url_removed | ||
Additional AI safety context
What it touches: blog.articles, pages.blocks, storefront.routing, seo
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.articles.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"article_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"article_id"
]
}
Result (data)
{
"type": "object"
}
blog.articles.get — Дані статті блогу
What it does: Повертає метадані, SEO, переклади й посилання на спільний API блоків статті.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: blog.articles, pages.blocks, storefront.routing, seo
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Input data (params)
{
"type": "object",
"properties": {
"article_id": {
"type": "integer",
"minimum": 1
},
"include_deleted": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false,
"required": [
"article_id"
]
}
Result (data)
{
"type": "object"
}
blog.articles.list — Статті блогу
What it does: Повертає статті поточного магазину з boolean-статусом is_published, категорією, тегами та кількістю блоків. Підтримує ті самі базові фільтри, що й публічний блог: query, category_id і tag_id.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: blog.articles, pages.blocks, storefront.routing, seo
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"is_published": {
"type": "boolean"
},
"category_id": {
"type": "integer",
"minimum": 1
},
"tag_id": {
"type": "integer",
"minimum": 1
},
"include_deleted": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
blog.articles.media.delete — Видалити зображення статті
What it does: Очищає лише вибране поле cover або og_image і видаляє його старий файл. Текст, блоки та інше зображення статті не змінюються.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_article_media_deleted, media_file_deleted | ||
Additional AI safety context
What it touches: blog.articles, pages.blocks, storefront.routing, seo
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.articles.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"article_id": {
"type": "integer",
"minimum": 1
},
"target": {
"type": "string",
"enum": [
"cover",
"og_image"
]
}
},
"additionalProperties": false,
"required": [
"article_id",
"target"
]
}
Result (data)
{
"type": "object"
}
blog.articles.media.set — Завантажити зображення статті
What it does: Завантажує обкладинку cover або SEO-зображення og_image статті. Надішліть multipart/form-data: method, params_json, options_json і файл; назва файлового поля за замовчуванням file та може бути змінена параметром file_field.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_article_media_changed, old_media_file_deleted | ||
Additional AI safety context
What it touches: blog.articles, pages.blocks, storefront.routing, seo
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.articles.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"article_id": {
"type": "integer",
"minimum": 1
},
"target": {
"type": "string",
"enum": [
"cover",
"og_image"
]
},
"file_field": {
"type": "string",
"default": "file"
}
},
"additionalProperties": false,
"required": [
"article_id",
"target"
]
}
Result (data)
{
"type": "object"
}
blog.articles.restore — Відновити статтю блогу
What it does: Відновлює статтю, якщо її URL ще вільний. Окремо видалені блоки не відновлюються автоматично — для них використайте pages.blocks.restore.
| Access | write | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_article_restored | ||
Additional AI safety context
What it touches: blog.articles, pages.blocks, storefront.routing, seo
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.articles.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"article_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"article_id"
]
}
Result (data)
{
"type": "object"
}
blog.articles.update — Оновити статтю блогу
What it does: Частково оновлює метадані, SEO, категорію й теги статті; блоки не змінює. У multipart-запиті можна передати поля cover та og_image; для окремої роботи із зображеннями використовуйте blog.articles.media.set/delete.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_article_changed, blog_url_may_change, seo_may_change | ||
Additional AI safety context
What it touches: blog.articles, pages.blocks, storefront.routing, seo
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.articles.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"article_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"article_id",
"patch"
]
}
Result (data)
{
"type": "object"
}
blog.articles.visibility.set — Статус публікації статті
What it does: Вузько перемикає boolean is_published: false лишає статтю чернеткою, true публікує зараз. Відкладеного статусу немає.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_article_visibility_changed | ||
Additional AI safety context
What it touches: blog.articles, pages.blocks, storefront.routing, seo
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.articles.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"article_id": {
"type": "integer",
"minimum": 1
},
"is_published": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"article_id",
"is_published"
]
}
Result (data)
{
"type": "object"
}
Категорії й теги (8)
blog.categories.create — Створити категорію блогу
What it does: Створює shop-scoped категорію; URL автоматично унікалізується серед активних і видалених записів.
| Access | write | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_category_created | ||
Additional AI safety context
What it touches: blog.taxonomy, storefront.routing, seo
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.categories.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"title"
]
}
Result (data)
{
"type": "object"
}
blog.categories.delete — Видалити категорію блогу
What it does: М'яко видаляє категорію; статті зберігаються і втрачають категорію лише після фінального очищення.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_category_soft_deleted | ||
Additional AI safety context
What it touches: blog.taxonomy, storefront.routing, seo
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.categories.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"category_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"category_id"
]
}
Result (data)
{
"type": "object"
}
blog.categories.list — Категорії блогу
What it does: Повертає категорії лише поточного магазину.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: blog.taxonomy, storefront.routing, seo
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"include_deleted": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
blog.categories.update — Оновити категорію блогу
What it does: Частково оновлює категорію поточного магазину.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_category_changed, blog_urls_may_change | ||
Additional AI safety context
What it touches: blog.taxonomy, storefront.routing, seo
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.categories.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"category_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"category_id",
"patch"
]
}
Result (data)
{
"type": "object"
}
blog.tags.create — Створити тег блогу
What it does: Створює shop-scoped тег; тег за замовчуванням noindex.
| Access | write | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_tag_created | ||
Additional AI safety context
What it touches: blog.taxonomy, storefront.routing, seo
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.tags.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"title"
]
}
Result (data)
{
"type": "object"
}
blog.tags.delete — Видалити тег блогу
What it does: М'яко видаляє тег; статті не видаляються.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_tag_soft_deleted | ||
Additional AI safety context
What it touches: blog.taxonomy, storefront.routing, seo
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.tags.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"tag_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"tag_id"
]
}
Result (data)
{
"type": "object"
}
blog.tags.list — Теги блогу
What it does: Повертає теги лише поточного магазину.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: blog.taxonomy, storefront.routing, seo
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"include_deleted": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
blog.tags.update — Оновити тег блогу
What it does: Частково оновлює тег поточного магазину.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_tag_changed, blog_urls_may_change | ||
Additional AI safety context
What it touches: blog.taxonomy, storefront.routing, seo
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.tags.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"tag_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"tag_id",
"patch"
]
}
Result (data)
{
"type": "object"
}
Налаштування блогу (4)
blog.settings.get — Налаштування блогу
What it does: Повертає глобальні налаштування блогу. Модуль за замовчуванням вимкнений; власник вмикає його в налаштуваннях сайту. Єдиний запис налаштувань блогу з'являється там само, а у вкладці Блог лишається контент.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: blog.settings, storefront.routing, seo
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
blog.settings.listing.update — Налаштувати список статей
What it does: Вузький сумісний шлюз до властивостей блока blog_grid головної сторінки: pagination/infinite, сітка від 1x1 до 5x5, повна сітка або власна кількість статей у порції, показ фільтрів зверху чи в сайдбарі. Для повного керування включно з дизайном використовуйте pages.blocks.* з blog_settings_id.
| Access | write | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | supported |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_listing_changed | ||
Additional AI safety context
What it touches: blog.settings, storefront.routing, seo
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.settings.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"listing_mode": {
"type": "string",
"enum": [
"pagination",
"infinite"
]
},
"grid_size": {
"type": "string",
"enum": [
"1x1",
"2x2",
"3x3",
"4x4",
"5x5"
]
},
"article_count_mode": {
"type": "string",
"enum": [
"full_grid",
"custom"
]
},
"articles_count": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"show_filters": {
"type": "boolean"
},
"filters_position": {
"type": "string",
"enum": [
"top",
"sidebar"
]
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
blog.settings.update — Оновити налаштування блогу
What it does: Оновлює назву, опис, автора за замовчуванням і SEO блогу. Сітка, фільтри та спосіб завантаження є властивостями блока blog_grid і змінюються через pages.blocks.update або вузький blog.settings.listing.update.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | blog_listing_changed, seo_changed | ||
Additional AI safety context
What it touches: blog.settings, storefront.routing, seo
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.settings.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"patch"
]
}
Result (data)
{
"type": "object"
}
blog.settings.url_prefix.set — Змінити URL-частину блогу
What it does: Змінює перший сегмент усіх публічних URL блогу для поточного магазину. Наприклад, blog на news змінює /blog/article/ на /news/article/. Старий префікс зберігається як 301 redirect alias; після зміни перевірте ручні посилання в меню.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | supported |
| Required modules | blog | ||
| Data classes | shop_internal | ||
| Side effects | all_blog_public_urls_changed, old_blog_prefix_redirect_added, seo_urls_changed, manual_navigation_links_may_need_update | ||
Additional AI safety context
What it touches: blog.settings, storefront.routing, seo
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Блог ізольований магазином: ніколи не підставляй category/tag/article id з іншого магазину; API додатково перевіряє shop.
Preflight checks
blog.settings.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"url_prefix": {
"type": "string",
"maxLength": 80,
"pattern": "^[a-z0-9]+(?:[-_][a-z0-9]+)*$",
"description": "Один незарезервований URL-сегмент латиницею без слешів."
}
},
"additionalProperties": false,
"required": [
"url_prefix"
]
}
Result (data)
{
"type": "object"
}
Налаштування (17)
Магазин (10)
settings.catalog.get — Налаштування каталогу
What it does: Повертає чинні параметри показу дочірніх товарів і фільтрації варіацій.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: shop.settings
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
settings.catalog.update — Оновити налаштування каталогу
What it does: Частково змінює два чинні каталожні тумблери через helper налаштувань.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | catalog_behavior_changed | ||
Additional AI safety context
What it touches: shop.settings
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
settings.catalog.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"patch"
]
}
Result (data)
{
"type": "object"
}
settings.company.update — Оновити реквізити компанії
What it does: Частково оновлює назву, email, ЄДРПОУ, IBAN, додаткову інформацію та переклади. Ідентифікаційні й банківські дані потребують явного підтвердження.
| Access | write | Risk | dynamic |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal, financial | ||
| Side effects | legal_or_contact_details_changed | ||
Additional AI safety context
What it touches: shop.settings
Decision rule: Оціни фактичні поля; для HTML, секретів, індексації чи широкої зміни отримай явне підтвердження.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Ризик залежить від полів і контенту; перевір параметри та обери найвужчий метод.
- Метод працює з чутливими класами даних: financial. Не передавай їх поза завданням.
Preflight checks
settings.profile.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"patch"
]
}
Result (data)
{
"type": "object"
}
settings.languages.base.set — Задати базову мову
What it does: Змінює базову мову через чинний helper сторінки налаштувань і прибирає її з додаткових.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | public_url_language_policy_changed | ||
Additional AI safety context
What it touches: shop.settings
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
settings.languages.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"code": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"code"
]
}
Result (data)
{
"type": "object"
}
settings.languages.extra.set — Увімкнути додаткову мову
What it does: Вмикає або вимикає додаткову мову через чинний helper налаштувань.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | store_languages_changed | ||
Additional AI safety context
What it touches: shop.settings
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
settings.languages.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"enabled": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"code",
"enabled"
]
}
Result (data)
{
"type": "object"
}
settings.languages.get — Мови магазину
What it does: Повертає базову, увімкнені й доступні мови магазину.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: shop.settings
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
settings.modules.get — Стани модулів
What it does: Повертає тумблери модулів і тарифні стани з чинного serializer налаштувань.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: shop.settings
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
settings.modules.set — Увімкнути або вимкнути модуль
What it does: Змінює один чинний module toggle через існуючу тарифну та складську перевірку. Вимкнення AI заблокує наступні виклики цього токена.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | module_access_changed, warehouse_reset_may_be_enqueued | ||
Additional AI safety context
What it touches: shop.settings
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
settings.modules.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"module": {
"type": "string",
"enum": [
"crm",
"warehouse",
"customer_account",
"import_export",
"ai_agent_api"
]
},
"enabled": {
"type": "boolean"
},
"confirm_warehouse_reset": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false,
"required": [
"module",
"enabled"
]
}
Result (data)
{
"type": "object"
}
settings.profile.get — Профіль налаштувань
What it does: Повертає безпечний зріз базових, каталожних, модульних, мовних і компанійних налаштувань без паролів, токенів та секретів.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: shop.settings
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
settings.site_name.update — Змінити назву сайту
What it does: Змінює назву сайту через той самий валідатор поля, який використовує сторінка налаштувань.
| Access | write | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | site_identity_changed | ||
Additional AI safety context
What it touches: shop.settings
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
Preflight checks
settings.profile.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"site_name": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"additionalProperties": false,
"required": [
"site_name"
]
}
Result (data)
{
"type": "object"
}
Домен (2)
domain.settings.get — Налаштування домену
What it does: Повертає домен, DNS/TLS-статус, очікувані IP, помилку перевірки та обов'язкове пояснення DNS propagation: навіть після status=active старий сайт може бути видимим на окремих пристроях до завершення TTL — після зміни DNS це може тривати до 48 годин.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal, contact | ||
| Side effects | — | ||
Additional AI safety context
What it touches: shop.domain, dns, tls, public_routing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: contact. Не передавай їх поза завданням.
- Зміна домену впливає на DNS, TLS-сертифікат, canonical URL та доступність storefront.
- Навіть після status=active окремий пристрій або провайдер може до завершення DNS TTL — до 48 годин після зміни A-записів або DNS-серверів — показувати попередній сайт; це нормальне поширення DNS.
Preflight checks
domain.settings.get— Перевір status, resolved_ips і dns_target_ips; окремо звір root та www, реєстрове NS-делегування, нові авторитетні DNS і кілька публічних резолверів. (before_reporting_domain_failure)
Safer path
- Спочатку збережи домен із connect_requested=false і перевір DNS-налаштування.
- Якщо status=active і публічні DNS уже вказують на Hive, поясни TTL користувачу та дочекайся завершення кешу замість повторної конфігурації.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
domain.settings.update — Оновити домен
What it does: Частково змінює домен, email для Let's Encrypt і стан підключення через чинний save_domain_settings_from_user(); DNS/SSL обробляються наявним фоновим процесом. Після status=active агент має пояснити, що DNS-кеш окремих провайдерів або пристроїв може ще до 48 годин показувати попередній сайт.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal, contact | ||
| Side effects | public_domain_changed, dns_and_tls_workflow_changed, old_domain_runtime_may_be_cleaned | ||
Additional AI safety context
What it touches: shop.domain, dns, tls, public_routing
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Метод працює з чутливими класами даних: contact. Не передавай їх поза завданням.
- Зміна домену впливає на DNS, TLS-сертифікат, canonical URL та доступність storefront.
- Навіть після status=active окремий пристрій або провайдер може до завершення DNS TTL — до 48 годин після зміни A-записів або DNS-серверів — показувати попередній сайт; це нормальне поширення DNS.
Preflight checks
domain.settings.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)domain.settings.get— Перевір status, resolved_ips і dns_target_ips; окремо звір root та www, реєстрове NS-делегування, нові авторитетні DNS і кілька публічних резолверів. (before_reporting_domain_failure)
Safer path
- Спочатку збережи домен із connect_requested=false і перевір DNS-налаштування.
- Якщо status=active і публічні DNS уже вказують на Hive, поясни TTL користувачу та дочекайся завершення кешу замість повторної конфігурації.
Input data (params)
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253
},
"certificate_email": {
"type": "string",
"maxLength": 254
},
"connect_requested": {
"type": "boolean"
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
Дизайн (2)
design.theme.get — Дизайн теми
What it does: Повертає активну тему, кольори, системні шрифти, ваги, розміри та власні font groups без бінарних даних.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: storefront.theme
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
design.theme.update — Оновити дизайн теми
What it does: Частково змінює дозволені кольори, стандартні шрифти, ваги, розміри та radius через ThemeUserSettings.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | site_design_changed | ||
Additional AI safety context
What it touches: storefront.theme
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
design.theme.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"patch"
]
}
Result (data)
{
"type": "object"
}
SEO (3)
seo.audit — SEO-аудит
What it does: Викликає чинний build_seo_audit(shop): score, секції, лічильники та рекомендації.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: seo, search_indexing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
seo.settings.get — SEO-налаштування
What it does: Повертає глобальні SEO-поля магазину та URL OG-зображення.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: seo, search_indexing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
seo.settings.update — Оновити SEO
What it does: Частково оновлює глобальні SEO-поля. Увімкнення або вимкнення індексації вимагає підтвердження.
| Access | write | Risk | dynamic |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | search_indexing_or_metadata_changed | ||
Additional AI safety context
What it touches: seo, search_indexing
Decision rule: Оціни фактичні поля; для HTML, секретів, індексації чи широкої зміни отримай явне підтвердження.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Ризик залежить від полів і контенту; перевір параметри та обери найвужчий метод.
Preflight checks
seo.settings.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"patch"
]
}
Result (data)
{
"type": "object"
}
Продажі (33)
Замовлення (11)
orders.cancel — Скасувати замовлення
What it does: Викликає Order.cancel_order(): скасовує замовлення і звільняє складський резерв; reason записується лише якщо передано author_user_id.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | warehouse | ||
| Data classes | shop_internal | ||
| Side effects | stock_released, order_cancelled | ||
Additional AI safety context
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
orders.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
},
"reason": {
"type": "string"
},
"author_user_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"order_id"
]
}
Result (data)
{
"type": "object"
}
orders.comment.add — Додати коментар до замовлення
What it does: Додає внутрішній коментар від конкретного працівника магазину; автор задається явно, щоб журнал не приписував AI чужу особу.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | order_comment_created | ||
Additional AI safety context
What it touches: orders, customers, stock
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
Preflight checks
orders.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
},
"author_user_id": {
"type": "integer",
"minimum": 1
},
"text": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"order_id",
"author_user_id",
"text"
]
}
Result (data)
{
"type": "object"
}
orders.confirm — Підтвердити замовлення
What it does: Викликає Order.confirm_order(): підтверджує, резервує склад і ставить клієнтський email у чергу.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | warehouse | ||
| Data classes | shop_internal | ||
| Side effects | stock_reserved, customer_email_enqueued | ||
Additional AI safety context
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
orders.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"order_id"
]
}
Result (data)
{
"type": "object"
}
orders.documents.generate — Згенерувати документи
What it does: Викликає чинний Order.prepare_docs() для рахунку та видаткової накладної.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | invoice_and_waybill_generated | ||
Additional AI safety context
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
orders.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"order_id"
]
}
Result (data)
{
"type": "object"
}
orders.documents.mark_sent — Позначити документи відправленими
What it does: Викликає чинний Order.doc_send().
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | document_state_changed | ||
Additional AI safety context
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
orders.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"order_id"
]
}
Result (data)
{
"type": "object"
}
orders.fiscalization.mark — Позначити фіскалізованим
What it does: Викликає Order.order_fiscalized(check_link) і ставить лист із чеком у чергу.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | fiscalization_state_changed, customer_email_enqueued | ||
Additional AI safety context
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
orders.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
},
"check_link": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"order_id",
"check_link"
]
}
Result (data)
{
"type": "object"
}
orders.fulfillment.pack — Позначити запакованим
What it does: Викликає Order.order_pack() і ставить клієнтський email у чергу.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | packing_state_changed, customer_email_enqueued | ||
Additional AI safety context
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
orders.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"order_id"
]
}
Result (data)
{
"type": "object"
}
orders.fulfillment.ship — Позначити відправленим
What it does: Викликає Order.order_send(ttn), синхронізує ТТН у чинній OrderDelivery і ставить email у чергу.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | shipping_state_changed, customer_email_enqueued | ||
Additional AI safety context
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
orders.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
},
"ttn": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"order_id",
"ttn"
]
}
Result (data)
{
"type": "object"
}
orders.get — Дані замовлення
What it does: Повертає повне замовлення: товари, суму, доставку, оплату, статуси, документи та внутрішні коментарі.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii, financial | ||
| Side effects | — | ||
Additional AI safety context
What it touches: orders, customers, stock
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: customer_pii, financial. Не передавай їх поза завданням.
Input data (params)
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"order_id"
]
}
Result (data)
{
"type": "object"
}
orders.list — Список замовлень
What it does: Повертає замовлення з пошуком, джерелом і окремими status-фільтрами; містить контактні дані клієнтів.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii, financial | ||
| Side effects | — | ||
Additional AI safety context
What it touches: orders, customers, stock
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: customer_pii, financial. Не передавай їх поза завданням.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"source": {
"type": "string"
},
"confirmed": {
"type": "boolean"
},
"is_paid": {
"type": "boolean"
},
"is_cansel": {
"type": "boolean"
},
"is_sended": {
"type": "boolean"
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
orders.payment.mark_paid — Позначити оплаченим
What it does: Викликає Order.order_paid(): фіксує оплату, резервує склад і ставить email у чергу.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | warehouse | ||
| Data classes | shop_internal | ||
| Side effects | payment_state_changed, stock_reserved, customer_email_enqueued | ||
Additional AI safety context
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
orders.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"order_id"
]
}
Result (data)
{
"type": "object"
}
Оплати (3)
payments.settings.get — Налаштування методу оплати
What it does: Повертає один платіжний провайдер і його безпечну конфігурацію; секрет показується лише як secret_configured. Для code=wayforpay поле integration містить custom_domain_ready, причину блокування без власного домену, чинний Service URL після підключення та повну послідовність налаштування.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | financial, shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: checkout.payments, payment_configuration
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: financial. Не передавай їх поза завданням.
- Секрети приймаються лише як вхідні дані й ніколи не повертаються у відповіді або журналі.
- Для code=wayforpay спочатку перевір integration.custom_domain_ready. Якщо false, confirmation_url=null: підключи власний домен і не використовуй технічний URL як Service URL.
- Коли custom_domain_ready=true, обов'язково перенеси integration.confirmation_url у поле Service URL кабінету WayForPay; без callback Shopcore не підтвердить оплату.
- WayForPay testMode=true передає ціну кожного товарного рядка і платної доставки як 1; перед production-активацією встанови false.
- Після зміни активного домену confirmation_url зміниться — Service URL у кабінеті WayForPay також треба оновити.
Safer path
- Спочатку налаштуй метод вимкненим, перевір власний домен через domain.settings.get, прочитай payments.settings.get, перенеси Service URL, перевір тестову оплату й лише потім активуй.
Input data (params)
{
"type": "object",
"properties": {
"code": {
"type": "string",
"enum": [
"wayforpay",
"bank_personal",
"bank_business",
"cash"
]
}
},
"additionalProperties": false,
"required": [
"code"
]
}
Result (data)
{
"type": "object"
}
payments.settings.list — Налаштування оплат
What it does: Повертає всі зареєстровані платіжні провайдери, checkout-представлення і стан налаштувань без secret_key. Для WayForPay також повертає custom_domain_ready і точний confirmation_url для поля Service URL лише після підключення власного домену, порядок налаштування, поведінку testMode і результат callback.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | financial, shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: checkout.payments, payment_configuration
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: financial. Не передавай їх поза завданням.
- Секрети приймаються лише як вхідні дані й ніколи не повертаються у відповіді або журналі.
- Для code=wayforpay спочатку перевір integration.custom_domain_ready. Якщо false, confirmation_url=null: підключи власний домен і не використовуй технічний URL як Service URL.
- Коли custom_domain_ready=true, обов'язково перенеси integration.confirmation_url у поле Service URL кабінету WayForPay; без callback Shopcore не підтвердить оплату.
- WayForPay testMode=true передає ціну кожного товарного рядка і платної доставки як 1; перед production-активацією встанови false.
- Після зміни активного домену confirmation_url зміниться — Service URL у кабінеті WayForPay також треба оновити.
Safer path
- Спочатку налаштуй метод вимкненим, перевір власний домен через domain.settings.get, прочитай payments.settings.get, перенеси Service URL, перевір тестову оплату й лише потім активуй.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
payments.settings.update — Оновити метод оплати
What it does: Частково оновлює налаштування зареєстрованого платіжного provider через чинні моделі та full_clean(). secret_key можна передати для WayForPay, але він не повертається у відповіді або журналі. confirmation_url є обчислюваним read-only полем: його не передають у patch. Копіювати його з after.integration.confirmation_url до Service URL можна лише коли custom_domain_ready=true; технічний домен для production не використовують.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | financial, secret_input | ||
| Side effects | checkout_payment_options_changed, payment_credentials_may_change | ||
Additional AI safety context
What it touches: checkout.payments, payment_configuration
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Метод працює з чутливими класами даних: financial, secret_input. Не передавай їх поза завданням.
- Секрети приймаються лише як вхідні дані й ніколи не повертаються у відповіді або журналі.
- Для code=wayforpay спочатку перевір integration.custom_domain_ready. Якщо false, confirmation_url=null: підключи власний домен і не використовуй технічний URL як Service URL.
- Коли custom_domain_ready=true, обов'язково перенеси integration.confirmation_url у поле Service URL кабінету WayForPay; без callback Shopcore не підтвердить оплату.
- WayForPay testMode=true передає ціну кожного товарного рядка і платної доставки як 1; перед production-активацією встанови false.
- Після зміни активного домену confirmation_url зміниться — Service URL у кабінеті WayForPay також треба оновити.
- Зміна впливає на варіанти оплати в checkout і може змінити платіжні реквізити.
Preflight checks
payments.settings.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Спочатку налаштуй метод вимкненим, перевір власний домен через domain.settings.get, прочитай payments.settings.get, перенеси Service URL, перевір тестову оплату й лише потім активуй.
Input data (params)
{
"type": "object",
"properties": {
"code": {
"type": "string",
"enum": [
"wayforpay",
"bank_personal",
"bank_business",
"cash"
]
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"code",
"patch"
]
}
Result (data)
{
"type": "object"
}
Клієнти (5)
customers.get — Дані клієнта
What it does: Повертає профіль користувача магазину й останні замовлення.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii, financial | ||
| Side effects | — | ||
Additional AI safety context
What it touches: customers
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: customer_pii, financial. Не передавай їх поза завданням.
Input data (params)
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"customer_id"
]
}
Result (data)
{
"type": "object"
}
customers.list — Список клієнтів і працівників
What it does: Повертає користувачів магазину з ролями; потрібний, зокрема, для явного author_user_id у внутрішніх коментарях.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | — | ||
Additional AI safety context
What it touches: customers
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"role": {
"type": "string",
"enum": [
"customer",
"worker",
"all"
]
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
customers.update — Оновити профіль клієнта
What it does: Частково змінює контактні дані й активність профілю; паролі, права та ролі не доступні.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | customer_profile_changed | ||
Additional AI safety context
What it touches: customers
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
Preflight checks
customers.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"customer_id",
"patch"
]
}
Result (data)
{
"type": "object"
}
subscribers.delete — Видалити підписника
What it does: Видаляє email із підписок магазину.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | subscriber_deleted | ||
Additional AI safety context
What it touches: customers
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
Input data (params)
{
"type": "object",
"properties": {
"subscriber_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"subscriber_id"
]
}
Result (data)
{
"type": "object"
}
subscribers.list — Підписники розсилки
What it does: Повертає email-підписників магазину.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | — | ||
Additional AI safety context
What it touches: customers
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
Відгуки (6)
reviews.delete — Видалити відгук
What it does: Безповоротно видаляє відгук і перераховує рейтинг товару. Для спаму й небажаних відгуків спершу розглянь reviews.moderate зі status=rejected: запис зникає з сайту, але лишається в історії.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | review_deleted, product_rating_recalculated | ||
Additional AI safety context
What it touches: reviews, product_rating
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
- Містить персональні дані покупців (email): не розкривай їх без потреби й не передавай третім сторонам.
- Зміна одразу впливає на те, що бачать покупці на сторінці товару.
Preflight checks
reviews.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Для спаму й небажаних записів використовуй статус rejected через reviews.moderate / questions.moderate замість видалення.
Input data (params)
{
"type": "object",
"properties": {
"review_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"review_id"
]
}
Result (data)
{
"type": "object"
}
reviews.get — Дані відгуку
What it does: Повертає один відгук магазину з повним текстом, статусом модерації, нотаткою модератора й даними підтвердженої покупки.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | — | ||
Additional AI safety context
What it touches: reviews, product_rating
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
- Містить персональні дані покупців (email): не розкривай їх без потреби й не передавай третім сторонам.
Input data (params)
{
"type": "object",
"properties": {
"review_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"review_id"
]
}
Result (data)
{
"type": "object"
}
reviews.list — Список відгуків
What it does: Повертає відгуки магазину з фільтрами за статусом модерації (pending/published/rejected), товаром, оцінкою, підтвердженою покупкою й текстом. За замовчуванням спочатку ті, що чекають модерації. status_counts показує кількість за статусами з урахуванням інших фільтрів. Містить email авторів.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | — | ||
Additional AI safety context
What it touches: reviews, product_rating
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
- Містить персональні дані покупців (email): не розкривай їх без потреби й не передавай третім сторонам.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"status": {
"type": "string",
"enum": [
"pending",
"published",
"rejected",
"all"
],
"default": "all"
},
"product_id": {
"type": "integer",
"minimum": 1
},
"rating": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"verified_purchase": {
"type": "boolean"
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
reviews.moderate — Модерувати відгуки
What it does: Змінює статус модерації одного або до 100 відгуків: published — показати на сайті й врахувати в рейтингу, rejected — приховати (запис лишається, спам краще відхиляти, а не видаляти), pending — повернути на перевірку. Рейтинг кожного зачепленого товару перераховується. note зберігається як внутрішня нотатка модератора.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | review_status_changed, storefront_reviews_changed, product_rating_recalculated | ||
Additional AI safety context
What it touches: reviews, product_rating
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
- Містить персональні дані покупців (email): не розкривай їх без потреби й не передавай третім сторонам.
- Зміна одразу впливає на те, що бачать покупці на сторінці товару.
Preflight checks
reviews.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Для спаму й небажаних записів використовуй статус rejected через reviews.moderate / questions.moderate замість видалення.
Input data (params)
{
"type": "object",
"properties": {
"review_id": {
"type": "integer",
"minimum": 1
},
"review_ids": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
},
"minItems": 1,
"maxItems": 100,
"uniqueItems": true
},
"status": {
"type": "string",
"enum": [
"pending",
"published",
"rejected"
]
},
"note": {
"type": "string",
"maxLength": 1000,
"description": "Внутрішня нотатка модератора; покупцю не показується."
}
},
"additionalProperties": false,
"required": [
"status"
]
}
Result (data)
{
"type": "object"
}
reviews.settings.get — Налаштування відгуків
What it does: Повертає налаштування відгуків і питань магазину: головний вимикач reviews_enabled (без нього блок відгуків не рендериться, питання теж неактивні), хто може писати відгуки та питання, режим публікації (immediate/moderated) і чи увімкнено питання. effective показує, чи сайт зараз реально приймає відгуки й питання з урахуванням модуля «Кабінет користувача».
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: reviews, product_rating
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
reviews.settings.update — Змінити налаштування відгуків
What it does: Частково змінює налаштування відгуків і питань. Політики registered і purchased доступні лише з увімкненим модулем «Кабінет користувача». Зміна publication_mode діє лише на нові відгуки й питання; черга pending автоматично не публікується. reviews_enabled=false прибирає блок відгуків із сайту й зупиняє прийом відгуків і питань (опубліковані дані не видаляються).
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | storefront_feedback_rules_changed | ||
Additional AI safety context
What it touches: reviews, product_rating
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- reviews_enabled=false прибирає блок відгуків із сайту й зупиняє прийом відгуків і питань.
- Політики registered і purchased працюють лише з увімкненим модулем «Кабінет користувача».
Preflight checks
reviews.settings.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"reviews_enabled": {
"type": "boolean"
},
"review_author_policy": {
"type": "string",
"enum": [
"anyone",
"registered",
"purchased"
]
},
"questions_enabled": {
"type": "boolean"
},
"question_author_policy": {
"type": "string",
"enum": [
"anyone",
"registered",
"purchased"
]
},
"publication_mode": {
"type": "string",
"enum": [
"immediate",
"moderated"
]
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
Питання про товари (8)
questions.delete — Видалити питання
What it does: Безповоротно видаляє питання разом з усією розмовою. Для спаму спершу розглянь questions.moderate зі status=rejected: питання зникне з сайту, але лишиться в історії.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | question_deleted, storefront_questions_changed | ||
Additional AI safety context
What it touches: product_questions, storefront.product
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
- Містить персональні дані покупців (email): не розкривай їх без потреби й не передавай третім сторонам.
- Зміна одразу впливає на те, що бачать покупці на сторінці товару.
Preflight checks
questions.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Для спаму й небажаних записів використовуй статус rejected через reviews.moderate / questions.moderate замість видалення.
Input data (params)
{
"type": "object",
"properties": {
"question_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"question_id"
]
}
Result (data)
{
"type": "object"
}
questions.get — Питання з розмовою
What it does: Повертає питання разом з усією розмовою: повідомлення покупця й відповіді магазину з їхніми статусами модерації.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | — | ||
Additional AI safety context
What it touches: product_questions, storefront.product
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
- Містить персональні дані покупців (email): не розкривай їх без потреби й не передавай третім сторонам.
Input data (params)
{
"type": "object",
"properties": {
"question_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"question_id"
]
}
Result (data)
{
"type": "object"
}
questions.list — Список питань про товари
What it does: Повертає питання покупців із фільтрами за статусом (pending/published/rejected/closed), товаром, наявністю відповіді магазину й текстом. Спочатку ті, що чекають модерації або мають нові повідомлення на перевірці. text — перше повідомлення, has_shop_answer і pending_messages допомагають знайти питання без відповіді. Містить email авторів.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | — | ||
Additional AI safety context
What it touches: product_questions, storefront.product
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
- Містить персональні дані покупців (email): не розкривай їх без потреби й не передавай третім сторонам.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"status": {
"type": "string",
"enum": [
"pending",
"published",
"rejected",
"closed",
"all"
],
"default": "all"
},
"product_id": {
"type": "integer",
"minimum": 1
},
"answered": {
"type": "boolean",
"description": "true — є відповідь магазину, false — ще немає."
},
"has_pending_messages": {
"type": "boolean"
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
questions.messages.delete — Видалити повідомлення в питанні
What it does: Безповоротно видаляє одне повідомлення з розмови (наприклад, помилкову відповідь магазину). Перше повідомлення — це саме питання, його видаляє questions.delete. Для спаму від покупця спершу розглянь questions.messages.moderate зі status=rejected.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | question_message_deleted, storefront_questions_changed | ||
Additional AI safety context
What it touches: product_questions, storefront.product
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
- Містить персональні дані покупців (email): не розкривай їх без потреби й не передавай третім сторонам.
- Зміна одразу впливає на те, що бачать покупці на сторінці товару.
Preflight checks
questions.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Для спаму й небажаних записів використовуй статус rejected через reviews.moderate / questions.moderate замість видалення.
Input data (params)
{
"type": "object",
"properties": {
"message_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"message_id"
]
}
Result (data)
{
"type": "object"
}
questions.messages.moderate — Модерувати повідомлення в питаннях
What it does: Змінює статус окремих повідомлень у розмовах (до 100): published, rejected або pending. Перше повідомлення питання модерується разом із питанням через questions.moderate, тому тут воно не приймається.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | question_message_status_changed, storefront_questions_changed | ||
Additional AI safety context
What it touches: product_questions, storefront.product
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
- Містить персональні дані покупців (email): не розкривай їх без потреби й не передавай третім сторонам.
- Зміна одразу впливає на те, що бачать покупці на сторінці товару.
Preflight checks
questions.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Для спаму й небажаних записів використовуй статус rejected через reviews.moderate / questions.moderate замість видалення.
Input data (params)
{
"type": "object",
"properties": {
"message_id": {
"type": "integer",
"minimum": 1
},
"message_ids": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
},
"minItems": 1,
"maxItems": 100,
"uniqueItems": true
},
"status": {
"type": "string",
"enum": [
"pending",
"published",
"rejected"
]
}
},
"additionalProperties": false,
"required": [
"status"
]
}
Result (data)
{
"type": "object"
}
questions.messages.update — Змінити відповідь магазину
What it does: Змінює текст однієї відповіді магазину. Повідомлення покупців змінювати не можна — їх можна лише модерувати.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | shop_answer_changed, storefront_questions_changed | ||
Additional AI safety context
What it touches: product_questions, storefront.product
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Містить персональні дані покупців (email): не розкривай їх без потреби й не передавай третім сторонам.
- Зміна одразу впливає на те, що бачать покупці на сторінці товару.
Preflight checks
questions.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Для спаму й небажаних записів використовуй статус rejected через reviews.moderate / questions.moderate замість видалення.
Input data (params)
{
"type": "object",
"properties": {
"message_id": {
"type": "integer",
"minimum": 1
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 5000
}
},
"additionalProperties": false,
"required": [
"message_id",
"text"
]
}
Result (data)
{
"type": "object"
}
questions.moderate — Модерувати питання
What it does: Змінює статус одного або до 100 питань: published — показати на сторінці товару, rejected — приховати, pending — повернути на перевірку, closed — закрити розмову (питання лишається видимим, покупець більше не може писати). published і rejected застосовуються також до повідомлень покупця в цьому питанні, як у панелі модерації.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | question_status_changed, storefront_questions_changed | ||
Additional AI safety context
What it touches: product_questions, storefront.product
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
- Містить персональні дані покупців (email): не розкривай їх без потреби й не передавай третім сторонам.
- Зміна одразу впливає на те, що бачать покупці на сторінці товару.
Preflight checks
questions.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Для спаму й небажаних записів використовуй статус rejected через reviews.moderate / questions.moderate замість видалення.
Input data (params)
{
"type": "object",
"properties": {
"question_id": {
"type": "integer",
"minimum": 1
},
"question_ids": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
},
"minItems": 1,
"maxItems": 100,
"uniqueItems": true
},
"status": {
"type": "string",
"enum": [
"pending",
"published",
"rejected",
"closed"
]
},
"note": {
"type": "string",
"maxLength": 1000,
"description": "Внутрішня нотатка модератора; покупцю не показується."
}
},
"additionalProperties": false,
"required": [
"status"
]
}
Result (data)
{
"type": "object"
}
questions.reply — Відповісти на питання
What it does: Додає відповідь магазину в розмову; вона публікується одразу й видима на сторінці товару. Якщо питання ще чекає модерації, відповідь можлива лише з publish_question=true (питання й повідомлення покупця будуть опубліковані). close_after=true закриває розмову після відповіді. У закрите питання відповісти не можна.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | shop_answer_published, storefront_questions_changed | ||
Additional AI safety context
What it touches: product_questions, storefront.product
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: customer_pii. Не передавай їх поза завданням.
- Містить персональні дані покупців (email): не розкривай їх без потреби й не передавай третім сторонам.
- Зміна одразу впливає на те, що бачать покупці на сторінці товару.
- Відповідь публікується одразу від імені магазину; перевір факти (наявність, ціну, терміни) перед відповіддю.
Preflight checks
questions.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Для спаму й небажаних записів використовуй статус rejected через reviews.moderate / questions.moderate замість видалення.
Input data (params)
{
"type": "object",
"properties": {
"question_id": {
"type": "integer",
"minimum": 1
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 5000
},
"publish_question": {
"type": "boolean",
"default": false
},
"close_after": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false,
"required": [
"question_id",
"text"
]
}
Result (data)
{
"type": "object"
}
Операції (49)
Склад (12)
warehouse.history.report — Склад на дату
What it does: Будує пагінований історичний звіт через чинний build_stock_history_page().
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | warehouse | ||
| Data classes | financial | ||
| Side effects | — | ||
Additional AI safety context
What it touches: warehouse, stock_movements
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: financial. Не передавай їх поза завданням.
Input data (params)
{
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "ISO datetime"
},
"category_id": {
"type": "integer",
"minimum": 1
},
"query": {
"type": "string"
},
"only_positive": {
"type": "boolean",
"default": true
},
"page": {
"type": "integer",
"minimum": 1
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"additionalProperties": false,
"required": [
"date"
]
}
Result (data)
{
"type": "object"
}
warehouse.movements.list — Рухи складу
What it does: Повертає незмінюваний журнал складських рухів з фільтрами товару й типу.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | warehouse | ||
| Data classes | financial, shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: warehouse, stock_movements
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: financial. Не передавай їх поза завданням.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"product_id": {
"type": "integer",
"minimum": 1
},
"movement_type": {
"type": "string"
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
warehouse.purchases.get — Дані закупівлі
What it does: Повертає закупівлю та її товарні партії.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | warehouse | ||
| Data classes | financial | ||
| Side effects | — | ||
Additional AI safety context
What it touches: warehouse, stock_movements
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: financial. Не передавай їх поза завданням.
Input data (params)
{
"type": "object",
"properties": {
"purchase_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"purchase_id"
]
}
Result (data)
{
"type": "object"
}
warehouse.purchases.list — Список закупівель
What it does: Повертає закупівлі, їх етап, суми та стан синхронізації.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | warehouse | ||
| Data classes | financial | ||
| Side effects | — | ||
Additional AI safety context
What it touches: warehouse, stock_movements
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Метод працює з чутливими класами даних: financial. Не передавай їх поза завданням.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"is_paid": {
"type": "boolean"
},
"stage_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
warehouse.purchases.sync — Синхронізувати закупівлю
What it does: Викликає чинний request_purchase_sync(); залежно від обсягу виконує роботу одразу або через Celery.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | warehouse | ||
| Data classes | financial | ||
| Side effects | physical_stock_rows_rebuilt, background_task_may_start | ||
Additional AI safety context
What it touches: warehouse, stock_movements
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Метод працює з чутливими класами даних: financial. Не передавай їх поза завданням.
Preflight checks
warehouse.purchases.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"purchase_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"purchase_id"
]
}
Result (data)
{
"type": "object"
}
warehouse.revisions.create — Створити ревізію
What it does: Створює чернетку ревізії й рахує system_qty кожного рядка через available_stock_count().
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | warehouse | ||
| Data classes | shop_internal | ||
| Side effects | stock_revision_draft_created | ||
Additional AI safety context
What it touches: warehouse, stock_movements
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Проведення ревізії створює складські рухи та змінює фактичні залишки.
Preflight checks
warehouse.revisions.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)warehouse.stock.list— Звір поточний точний залишок перед формуванням fact_qty. (before_revision_write)
Input data (params)
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"comment": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"fact_qty": {
"type": "integer",
"minimum": 0
},
"comment": {
"type": "string"
}
}
}
}
},
"additionalProperties": false,
"required": [
"items"
]
}
Result (data)
{
"type": "object"
}
warehouse.revisions.get — Дані ревізії
What it does: Повертає ревізію і всі її товарні рядки.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | warehouse | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: warehouse, stock_movements
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Проведення ревізії створює складські рухи та змінює фактичні залишки.
Input data (params)
{
"type": "object",
"properties": {
"revision_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"revision_id"
]
}
Result (data)
{
"type": "object"
}
warehouse.revisions.list — Список ревізій
What it does: Повертає складські ревізії та їх фоновий стан.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | warehouse | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: warehouse, stock_movements
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Проведення ревізії створює складські рухи та змінює фактичні залишки.
Preflight checks
warehouse.stock.list— Звір поточний точний залишок перед формуванням fact_qty. (before_revision_write)
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"status": {
"type": "string",
"enum": [
"draft",
"posted"
]
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
warehouse.revisions.post — Провести ревізію
What it does: Викликає чинний request_stock_revision_post(); операція може виконатися синхронно або перейти в Celery.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | warehouse | ||
| Data classes | shop_internal | ||
| Side effects | stock_quantities_changed, stock_movements_created, background_task_may_start | ||
Additional AI safety context
What it touches: warehouse, stock_movements
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Проведення ревізії створює складські рухи та змінює фактичні залишки.
Preflight checks
warehouse.revisions.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)warehouse.stock.list— Звір поточний точний залишок перед формуванням fact_qty. (before_revision_write)
Input data (params)
{
"type": "object",
"properties": {
"revision_id": {
"type": "integer",
"minimum": 1
},
"author_user_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"revision_id",
"author_user_id"
]
}
Result (data)
{
"type": "object"
}
warehouse.revisions.update — Оновити чернетку ревізії
What it does: Замінює рядки лише чернетки ревізії та заново фіксує system_qty через наявний сервіс залишку.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | supported |
| Required modules | warehouse | ||
| Data classes | shop_internal | ||
| Side effects | stock_revision_draft_replaced | ||
Additional AI safety context
What it touches: warehouse, stock_movements
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Проведення ревізії створює складські рухи та змінює фактичні залишки.
Preflight checks
warehouse.revisions.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)warehouse.stock.list— Звір поточний точний залишок перед формуванням fact_qty. (before_revision_write)
Input data (params)
{
"type": "object",
"properties": {
"revision_id": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"comment": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": false,
"required": [
"revision_id",
"items"
]
}
Result (data)
{
"type": "object"
}
warehouse.stock.list — Залишки товарів
What it does: Повертає кешований залишок SKU та, за потреби, точний доступний залишок із чинного available_stock_count().
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | warehouse | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: warehouse, stock_movements
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"only_positive": {
"type": "boolean",
"default": false
},
"exact": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
warehouse.summary — Огляд складу
What it does: Повертає кількість SKU, доступних одиниць, чернеток ревізій і незавершених складських операцій.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | warehouse | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: warehouse, stock_movements
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
Доставка (7)
shipping.methods.list — Методи доставки
What it does: Повертає публічні увімкнені методи та розраховану вартість. Для відсоткової ціни й порога передайте order_amount — суму товарів без доставки.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: checkout.shipping, shipping_configuration
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"order_amount": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
shipping.nova_poshta.cities.search — Пошук міст Нової пошти
What it does: Викликає чинний cached search_cities() з обмеженням результатів.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: checkout.shipping, shipping_configuration
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"additionalProperties": false,
"required": [
"query"
]
}
Result (data)
{
"type": "object"
}
shipping.nova_poshta.warehouses.list — Відділення Нової пошти
What it does: Викликає чинний cached get_warehouses() за city_ref, settlement_ref або city_name.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: checkout.shipping, shipping_configuration
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"city_ref": {
"type": "string"
},
"settlement_ref": {
"type": "string"
},
"city_name": {
"type": "string"
},
"query": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
shipping.settings.create — Створити метод доставки
What it does: Створює ще один екземпляр courier, post або self_pickup лише в магазині токена. У patch можна передати is_paid, price_mode=fixed|order_percent, price_value і free_from_order_amount.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | checkout_shipping_option_created | ||
Additional AI safety context
What it touches: checkout.shipping, shipping_configuration
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Зміна впливає на варіанти доставки та поля, які побачить покупець у checkout.
Preflight checks
shipping.settings.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Спочатку збережи метод вимкненим або перевір його поточний settings snapshot.
Input data (params)
{
"type": "object",
"properties": {
"provider_code": {
"type": "string",
"enum": [
"courier",
"post",
"self_pickup"
]
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"provider_code"
]
}
Result (data)
{
"type": "object"
}
shipping.settings.delete — Видалити метод доставки
What it does: Видаляє конкретний courier, post або self_pickup за кодом provider:id. Старі замовлення зберігають snapshot назви й адреси.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | checkout_shipping_option_deleted | ||
Additional AI safety context
What it touches: checkout.shipping, shipping_configuration
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
- Зміна впливає на варіанти доставки та поля, які побачить покупець у checkout.
Preflight checks
shipping.settings.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Спочатку збережи метод вимкненим або перевір його поточний settings snapshot.
Input data (params)
{
"type": "object",
"properties": {
"code": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"code"
]
}
Result (data)
{
"type": "object"
}
shipping.settings.get — Налаштування доставки
What it does: Повертає всі екземпляри методів доставки, їх публічні коди, поля checkout і переклади.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: checkout.shipping, shipping_configuration
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Potential hazards
- Зміна впливає на варіанти доставки та поля, які побачить покупець у checkout.
Safer path
- Спочатку збережи метод вимкненим або перевір його поточний settings snapshot.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
shipping.settings.update — Оновити метод доставки
What it does: Оновлює конкретний shop-scoped метод. Для courier, post і self_pickup передавай точний код виду provider:id; required_fields мають бути підмножиною show_fields. Платність задають is_paid, price_mode=fixed|order_percent, price_value та необов’язковий free_from_order_amount.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | checkout_shipping_options_changed, checkout_shipping_price_changed | ||
Additional AI safety context
What it touches: checkout.shipping, shipping_configuration
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- Зміна впливає на варіанти доставки та поля, які побачить покупець у checkout.
Preflight checks
shipping.settings.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Safer path
- Спочатку збережи метод вимкненим або перевір його поточний settings snapshot.
Input data (params)
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"code",
"patch"
]
}
Result (data)
{
"type": "object"
}
Імпорт та експорт (20)
exchange.auto_import.get — Стан автоматичного імпорту
What it does: Повертає активність, графік, політику дублікатів і managed_fields автоімпорту без повного source URL. Використовуй перед ручним оновленням товарів, щоб побачити, які поля може перетерти наступний запуск.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
- managed_fields — консервативний список полів, які наступний автоімпорт може оновити.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
exchange.catalog — Можливості імпорту й експорту
What it does: Повертає системні пресети, field registries, трансформації та marketplace providers із чинних registry-функцій.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
exchange.export_presets.create — Створити експортний пресет
What it does: Створює пресет і колонки, перевіряючи поля та transforms чинними registry validators.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | export_preset_created | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
exchange.export_presets.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"columns": {
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": false,
"required": [
"data",
"columns"
]
}
Result (data)
{
"type": "object"
}
exchange.export_presets.delete — Видалити експортний пресет
What it does: Видаляє кастомний пресет, колонки й пов'язані data gateways каскадно.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | export_preset_and_gateways_deleted | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
exchange.export_presets.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"preset_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"preset_id"
]
}
Result (data)
{
"type": "object"
}
exchange.export_presets.get — Дані експортного пресету
What it does: Повертає кастомний експортний пресет і колонки через get_runtime_custom_preset().
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"preset_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"preset_id"
]
}
Result (data)
{
"type": "object"
}
exchange.export_presets.list — Експортні пресети
What it does: Повертає системні й кастомні експортні пресети через чинні serializers.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
exchange.export_presets.update — Оновити експортний пресет
What it does: Частково оновлює пресет і атомарно замінює колонки через чинні validators.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | export_preset_changed | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
exchange.export_presets.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"preset_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"columns": {
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": false,
"required": [
"preset_id",
"patch",
"columns"
]
}
Result (data)
{
"type": "object"
}
exchange.gateways.create — Створити data gateway
What it does: Створює публічний gateway через DataGateway.clean() і необов'язковий IP allowlist.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | public_export_endpoint_created | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
exchange.gateways.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"allowed_ips": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false,
"required": [
"data"
]
}
Result (data)
{
"type": "object"
}
exchange.gateways.delete — Видалити data gateway
What it does: Видаляє публічний data gateway та IP allowlist.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | public_export_endpoint_deleted | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
exchange.gateways.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"gateway_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"gateway_id"
]
}
Result (data)
{
"type": "object"
}
exchange.gateways.get — Дані data gateway
What it does: Повертає один публічний data gateway.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"gateway_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"gateway_id"
]
}
Result (data)
{
"type": "object"
}
exchange.gateways.list — Публічні data gateways
What it does: Повертає публічні URL експорту, джерела пресетів і IP allowlist.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
exchange.gateways.update — Оновити data gateway
What it does: Частково оновлює gateway і за потреби атомарно замінює IP allowlist.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | public_export_endpoint_changed | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
exchange.gateways.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"gateway_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"allowed_ips": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false,
"required": [
"gateway_id",
"patch"
]
}
Result (data)
{
"type": "object"
}
exchange.import_presets.create — Створити імпортний пресет
What it does: Створює імпортний пресет і колонки, перевіряючи target fields і transforms чинними registry validators.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | import_preset_created | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
exchange.import_presets.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"columns": {
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": false,
"required": [
"data",
"columns"
]
}
Result (data)
{
"type": "object"
}
exchange.import_presets.delete — Видалити імпортний пресет
What it does: Видаляє кастомний імпортний пресет і його колонки.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | import_preset_deleted | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
exchange.import_presets.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"preset_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"preset_id"
]
}
Result (data)
{
"type": "object"
}
exchange.import_presets.get — Дані імпортного пресету
What it does: Повертає кастомний імпортний пресет і колонки через get_runtime_custom_import_preset().
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"preset_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"preset_id"
]
}
Result (data)
{
"type": "object"
}
exchange.import_presets.list — Імпортні пресети
What it does: Повертає системні й кастомні імпортні пресети через чинний payload builder.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
exchange.import_presets.update — Оновити імпортний пресет
What it does: Частково оновлює пресет і атомарно замінює колонки через чинні validators.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | import_preset_changed | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
exchange.import_presets.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"preset_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"columns": {
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": false,
"required": [
"preset_id",
"patch",
"columns"
]
}
Result (data)
{
"type": "object"
}
exchange.operations.cancel — Скасувати операцію обміну
What it does: Скасовує активну Celery-задачу, якщо вона є, і завершує операцію через чинний cancel_exchange_operation().
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | background_task_revoked, exchange_operation_cancelled | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Input data (params)
{
"type": "object",
"properties": {
"operation_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"operation_id"
]
}
Result (data)
{
"type": "object"
}
exchange.operations.get — Дані операції обміну
What it does: Повертає один статус імпорту/експорту та error_json.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"operation_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"operation_id"
]
}
Result (data)
{
"type": "object"
}
exchange.operations.list — Операції обміну
What it does: Повертає історію імпорту/експорту через чинний serialize_operation().
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"status": {
"type": "string"
},
"kind": {
"type": "string"
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
Канали сповіщень (6)
notifications.channels.create — Створити канал
What it does: Створює канал; provider.clean_config() викликається чинним model.clean(). Секрети приймаються, але не повертаються й редагуються в аудиті.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | notification_channel_created | ||
Additional AI safety context
What it touches: notifications, delivery_logs
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
notifications.channels.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"kind",
"data"
]
}
Result (data)
{
"type": "object"
}
notifications.channels.delete — Видалити канал
What it does: Видаляє канал; delivery logs залишаються з channel=null.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | notification_channel_deleted | ||
Additional AI safety context
What it touches: notifications, delivery_logs
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
notifications.channels.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"channel_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"kind",
"channel_id"
]
}
Result (data)
{
"type": "object"
}
notifications.channels.get — Дані каналу
What it does: Повертає один канал без секретних значень конфігурації.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: notifications, delivery_logs
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Input data (params)
{
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"channel_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"kind",
"channel_id"
]
}
Result (data)
{
"type": "object"
}
notifications.channels.list — Канали сповіщень
What it does: Повертає customer/form і merchant канали, schema провайдерів та ознаки налаштованих секретів без самих секретів.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: notifications, delivery_logs
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"kind": {
"type": "string",
"enum": [
"form",
"merchant"
]
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
notifications.channels.update — Оновити канал
What it does: Частково оновлює канал; відсутні секретні поля зберігаються, передані — замінюються й не повертаються.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | notification_channel_changed | ||
Additional AI safety context
What it touches: notifications, delivery_logs
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
notifications.channels.get— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"channel_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"kind",
"channel_id",
"patch"
]
}
Result (data)
{
"type": "object"
}
notifications.delivery_logs.list — Журнал доставок
What it does: Повертає журнали customer/form або merchant повідомлень без повного HTML та секретів.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: notifications, delivery_logs
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
},
"kind": {
"type": "string",
"enum": [
"form",
"merchant"
]
},
"status": {
"type": "string"
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
Редиректи (4)
redirects.create — Створити редирект
What it does: Створює правило base_path → target_url через чинну модель.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | routing_changed | ||
Additional AI safety context
What it touches: storefront.routing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
redirects.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"base_path": {
"type": "string"
},
"target_url": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"base_path",
"target_url"
]
}
Result (data)
{
"type": "object"
}
redirects.delete — Видалити редирект
What it does: Видаляє правило редиректу.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | routing_changed | ||
Additional AI safety context
What it touches: storefront.routing
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Дію може бути складно або неможливо скасувати; потрібне підтвердження точної операції.
Preflight checks
redirects.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"redirect_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"redirect_id"
]
}
Result (data)
{
"type": "object"
}
redirects.list — Список редиректів
What it does: Повертає правила редиректів магазину.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
Additional AI safety context
What it touches: storefront.routing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
Input data (params)
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Пошук за текстовими полями."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"default": 0
}
},
"additionalProperties": false
}
Result (data)
{
"type": "object"
}
redirects.update — Оновити редирект
What it does: Частково змінює source і target правила редиректу.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | routing_changed | ||
Additional AI safety context
What it touches: storefront.routing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
Potential hazards
- Змінює live-стан магазину; результат і помилки записуються в AI-журнал.
- Помилка може змінити поведінку магазину або дані; покажи очікуваний результат до запису.
Preflight checks
redirects.list— Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)
Input data (params)
{
"type": "object",
"properties": {
"redirect_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"redirect_id",
"patch"
]
}
Result (data)
{
"type": "object"
}