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.
If the AI module is unchecked, the access disclosure disappears and saving onboarding disables the API on the store.
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.
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.
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.
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.
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.
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.
Search pages.blocks.catalog first. If the visual block is missing, expose data through standard data blocks and use html_code only as the presentation layer. It does not grant Python, backend, or private-data access and requires explicit confirmation.
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-08.3
system.overview — Огляд даних магазинуWhat it does: Дає компактні лічильники каталогу, сторінок, замовлень, клієнтів і журналу AI без завантаження самих записів.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
What it touches: shop.capabilities
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"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 | — | ||
What it touches: shop.capabilities
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"type": "object"
}
audit.requests.get — Деталі AI-запитуWhat it does: Повертає один запис журналу з автоматично прихованими секретами.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
What it touches: ai.audit_log
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"type": "object",
"properties": {
"request_id": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"request_id"
]
}
{
"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 | — | ||
What it touches: ai.audit_log
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"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
}
{
"type": "object"
}
catalog.categories.create — Створити категоріюWhat it does: Створює категорію у наявному MPTT-дереві; slug генерується автоматично, якщо не переданий.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | catalog_tree_changed | ||
What it touches: catalog.categories, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
catalog.categories.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"title": {
"type": "string"
},
"slug": {
"type": "string"
},
"parent_id": {
"type": [
"integer",
"null"
]
},
"number": {
"type": "integer"
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"title"
]
}
{
"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 | ||
What it touches: catalog.categories, storefront.catalog
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
catalog.categories.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"category_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"category_id"
]
}
{
"type": "object"
}
catalog.categories.get — Дані категоріїWhat it does: Повертає категорію, її шлях, переклади, медіа, SEO та кількість товарів.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
What it touches: catalog.categories, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"category_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"category_id"
]
}
{
"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 | — | ||
What it touches: catalog.categories, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"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
}
{
"type": "object"
}
catalog.categories.update — Оновити категоріюWhat it does: Частково оновлює назву, дерево, порядок і SEO категорії з перевіркою циклів та належності магазину.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | catalog_tree_or_seo_changed | ||
What it touches: catalog.categories, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
catalog.categories.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"category_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"category_id",
"patch"
]
}
{
"type": "object"
}
catalog.buy_together.get — Супутні товариWhat it does: Повертає супутні товари для одного товару.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
{
"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 | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"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"
]
}
{
"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 | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
catalog.product_images.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get — Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write){
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"file_field": {
"type": "string",
"default": "file"
},
"alt": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
{
"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 | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
catalog.product_images.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get — Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write){
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"image_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id",
"image_id"
]
}
{
"type": "object"
}
catalog.product_images.list — Фото товаруWhat it does: Повертає головне фото й упорядковану галерею товару.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
{
"type": "object"
}
catalog.product_images.set_cover — Зробити фото головнимWhat it does: Міняє місцями головне фото товару та вибране фото галереї за чинним UI-патерном.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | product_cover_changed | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
catalog.product_images.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get — Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write){
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"image_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id",
"image_id"
]
}
{
"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 | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
catalog.product_images.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get — Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write){
"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"
]
}
{
"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 | — | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
{
"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 | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
catalog.product_specifications.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get — Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write){
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"items": {
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": false,
"required": [
"product_id",
"items"
]
}
{
"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 | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
catalog.products.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get — Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write){
"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"
]
}
{
"type": "object"
}
catalog.products.delete — Видалити товарWhat it does: Видаляє товар і його варіації через чинний сервіс масового видалення; склад не скидається автоматично.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | product_and_variations_deleted | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
catalog.products.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get — Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write){
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"reset_stock": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
{
"type": "object"
}
catalog.products.get — Дані товаруWhat it does: Повертає повну безпечну картку товару, переклади, SEO, категорії та пов'язані дані.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
{
"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 | — | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"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"
]
}
},
"additionalProperties": false
}
{
"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 | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
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){
"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"
]
}
{
"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 | ||
What it touches: catalog.products, storefront.catalog
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
catalog.products.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get — Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write){
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"is_published": {
"type": "boolean"
},
"is_archival": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
{
"type": "object"
}
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 | ||
What it touches: catalog.filters, catalog.variations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"type": "object",
"properties": {
"filter_id": {
"type": "integer",
"minimum": 1
},
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"filter_id",
"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 | ||
What it touches: catalog.filters, catalog.variations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
{
"type": "object",
"properties": {
"value_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"value_id"
]
}
{
"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 | ||
What it touches: catalog.filters, catalog.variations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"type": "object",
"properties": {
"value_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"value_id",
"patch"
]
}
{
"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 | ||
What it touches: catalog.filters, catalog.variations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"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 | ||
What it touches: catalog.filters, catalog.variations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
{
"type": "object",
"properties": {
"filter_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"filter_id"
]
}
{
"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 | — | ||
What it touches: catalog.filters, catalog.variations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"filter_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"filter_id"
]
}
{
"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 | — | ||
What it touches: catalog.filters, catalog.variations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"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
}
{
"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 | ||
What it touches: catalog.filters, catalog.variations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"type": "object",
"properties": {
"filter_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"filter_id",
"patch"
]
}
{
"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 | — | ||
What it touches: catalog.filters, catalog.variations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
{
"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 | ||
What it touches: catalog.filters, catalog.variations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
catalog.product_filters.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)exchange.auto_import.get — Перевір активність, duplicate_policy і managed_fields; при перетині покажи ризик власнику та дай вибір. (before_product_write){
"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"
]
}
{
"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 | — | ||
What it touches: catalog.filters, catalog.variations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"product_id"
]
}
{
"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 | ||
What it touches: catalog.filters, catalog.variations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
{
"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"
]
}
{
"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 | ||
What it touches: pages, storefront.routing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
pages.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"title": {
"type": "string"
},
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"title"
]
}
{
"type": "object"
}
pages.delete — Видалити сторінкуWhat it does: Видаляє сторінку разом із блоками та файлами; підключені runtime-layout отримають порожнє посилання.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | page_and_blocks_deleted, layout_may_be_unassigned | ||
What it touches: pages, storefront.routing
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
pages.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"page_id"
]
}
{
"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 | — | ||
What it touches: pages, storefront.routing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"page_id"
]
}
{
"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 | — | ||
What it touches: pages, storefront.routing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"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 | ||
What it touches: pages, storefront.routing
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
pages.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"runtime_context": {
"type": "string",
"enum": [
"catalog",
"category",
"product",
"checkout"
]
},
"page_id": {
"type": [
"integer",
"null"
]
}
},
"additionalProperties": false,
"required": [
"runtime_context",
"page_id"
]
}
{
"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 | — | ||
What it touches: pages, storefront.routing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"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"
}
},
"additionalProperties": false
}
{
"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 | ||
What it touches: pages, storefront.routing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
pages.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"page_id",
"patch"
]
}
{
"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 | ||
What it touches: pages, storefront.routing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
pages.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"is_published": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"page_id",
"is_published"
]
}
{
"type": "object"
}
pages.blocks.catalog — Каталог блоківWhat it does: Повертає реальний registry page builder: групи, всі зареєстровані типи блоків, контексти, schemas і defaults.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | public, shop_internal | ||
| Side effects | — | ||
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
pages.blocks.catalog — Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design){
"type": "object",
"properties": {
"block_code": {
"type": "string"
},
"runtime_context": {
"type": "string"
}
},
"additionalProperties": false
}
{
"type": "object"
}
pages.blocks.create — Створити блокWhat it does: Вставляє зареєстрований блок через BuilderProvider із його defaults і перекладами магазину.
| Access | write | Risk | dynamic |
|---|---|---|---|
| Confirmation | recommended | Idempotency | supported |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | page_content_changed | ||
What it touches: pages.blocks, storefront.layout
Decision rule: Оціни фактичні поля; для HTML, секретів, індексації чи широкої зміни отримай явне підтвердження.
pages.blocks.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)pages.blocks.catalog — Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design){
"type": "object",
"properties": {
"page_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": [
"page_id",
"block_code"
]
}
{
"type": "object"
}
pages.blocks.delete — Видалити блокWhat it does: Видаляє блок, переклади та завантажені assets через чинні cascade і signals.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | block_and_assets_deleted | ||
What it touches: pages.blocks, storefront.layout
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
pages.blocks.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)pages.blocks.catalog — Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design){
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"block_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"page_id",
"block_id"
]
}
{
"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 | ||
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
pages.blocks.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)pages.blocks.catalog — Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design){
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"block_id": {
"type": "integer",
"minimum": 1
},
"is_enabled": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"page_id",
"block_id",
"is_enabled"
]
}
{
"type": "object"
}
pages.blocks.get — Дані блокаWhat it does: Повертає один блок разом із його чинними schemas та значеннями.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
pages.blocks.catalog — Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design){
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"block_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"page_id",
"block_id"
]
}
{
"type": "object"
}
pages.blocks.list — Блоки сторінкиWhat it does: Повертає всі блоки сторінки з нормалізованим контентом, перекладами, дизайном і медіа.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
pages.blocks.catalog — Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design){
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"page_id"
]
}
{
"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 | ||
What it touches: pages.blocks, storefront.layout
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
pages.blocks.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)pages.blocks.catalog — Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design){
"type": "object",
"properties": {
"page_id": {
"type": "integer",
"minimum": 1
},
"block_id": {
"type": "integer",
"minimum": 1
},
"direction": {
"type": "string",
"enum": [
"up",
"down"
]
}
},
"additionalProperties": false,
"required": [
"page_id",
"block_id",
"direction"
]
}
{
"type": "object"
}
pages.blocks.update — Оновити блокWhat it does: Частково оновлює content/design/data_config/extra через schemas і validators зареєстрованого backend; multipart-файли мають ті самі upload__... ключі, що й builder UI.
| Access | write | Risk | dynamic |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | page_content_changed, media_may_change | ||
What it touches: pages.blocks, storefront.layout
Decision rule: Оціни фактичні поля; для HTML, секретів, індексації чи широкої зміни отримай явне підтвердження.
pages.blocks.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)pages.blocks.catalog — Спочатку знайди стандартний блок та його schema; власний HTML використовуй лише коли готового UI немає. (before_block_design){
"type": "object",
"properties": {
"page_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": [
"page_id",
"block_id"
]
}
{
"type": "object"
}
settings.catalog.get — Налаштування каталогуWhat it does: Повертає чинні параметри показу дочірніх товарів і фільтрації варіацій.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
What it touches: shop.settings
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"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 | ||
What it touches: shop.settings
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
settings.catalog.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"patch"
]
}
{
"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 | ||
What it touches: shop.settings
Decision rule: Оціни фактичні поля; для HTML, секретів, індексації чи широкої зміни отримай явне підтвердження.
settings.profile.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"patch"
]
}
{
"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 | ||
What it touches: shop.settings
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
settings.languages.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"code": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"code"
]
}
{
"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 | ||
What it touches: shop.settings
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
settings.languages.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"code": {
"type": "string"
},
"enabled": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"code",
"enabled"
]
}
{
"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 | — | ||
What it touches: shop.settings
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"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 | — | ||
What it touches: shop.settings
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"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 | ||
What it touches: shop.settings
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
settings.modules.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"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"
]
}
{
"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 | — | ||
What it touches: shop.settings
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"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 | ||
What it touches: shop.settings
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
settings.profile.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"site_name": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"additionalProperties": false,
"required": [
"site_name"
]
}
{
"type": "object"
}
domain.settings.get — Налаштування доменуWhat it does: Повертає домен, DNS/TLS-статус, очікувані IP та помилку перевірки без внутрішніх шляхів nginx.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal, contact | ||
| Side effects | — | ||
What it touches: shop.domain, dns, tls, public_routing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"type": "object"
}
domain.settings.update — Оновити доменWhat it does: Частково змінює домен, email для Let's Encrypt і стан підключення через чинний save_domain_settings_from_user(); DNS/SSL обробляються наявним фоновим процесом.
| 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 | ||
What it touches: shop.domain, dns, tls, public_routing
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
domain.settings.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253
},
"certificate_email": {
"type": "string",
"maxLength": 254
},
"connect_requested": {
"type": "boolean"
}
},
"additionalProperties": false
}
{
"type": "object"
}
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 | — | ||
What it touches: storefront.theme
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"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 | ||
What it touches: storefront.theme
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
design.theme.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"patch"
]
}
{
"type": "object"
}
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 | — | ||
What it touches: seo, search_indexing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"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 | — | ||
What it touches: seo, search_indexing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"type": "object"
}
seo.settings.update — Оновити SEOWhat 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 | ||
What it touches: seo, search_indexing
Decision rule: Оціни фактичні поля; для HTML, секретів, індексації чи широкої зміни отримай явне підтвердження.
seo.settings.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"patch"
]
}
{
"type": "object"
}
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 | ||
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
orders.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
},
"reason": {
"type": "string"
},
"author_user_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"order_id"
]
}
{
"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 | ||
What it touches: orders, customers, stock
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
orders.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"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"
]
}
{
"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 | ||
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
orders.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"order_id"
]
}
{
"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 | ||
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
orders.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"order_id"
]
}
{
"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 | ||
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
orders.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"order_id"
]
}
{
"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 | ||
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
orders.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
},
"check_link": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"order_id",
"check_link"
]
}
{
"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 | ||
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
orders.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"order_id"
]
}
{
"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 | ||
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
orders.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
},
"ttn": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"order_id",
"ttn"
]
}
{
"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 | — | ||
What it touches: orders, customers, stock
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"order_id"
]
}
{
"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 | — | ||
What it touches: orders, customers, stock
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"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
}
{
"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 | ||
What it touches: orders, customers, stock
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
orders.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"order_id"
]
}
{
"type": "object"
}
payments.settings.get — Налаштування методу оплатиWhat it does: Повертає один платіжний провайдер і його безпечну конфігурацію; секрет показується лише як secret_configured.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | financial, shop_internal | ||
| Side effects | — | ||
What it touches: checkout.payments, payment_configuration
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"type": "object",
"properties": {
"code": {
"type": "string",
"enum": [
"wayforpay",
"bank_personal",
"bank_business",
"cash"
]
}
},
"additionalProperties": false,
"required": [
"code"
]
}
{
"type": "object"
}
payments.settings.list — Налаштування оплатWhat it does: Повертає всі зареєстровані платіжні провайдери, checkout-представлення і стан налаштувань без secret_key.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | financial, shop_internal | ||
| Side effects | — | ||
What it touches: checkout.payments, payment_configuration
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"type": "object"
}
payments.settings.update — Оновити метод оплатиWhat it does: Частково оновлює налаштування зареєстрованого платіжного provider через чинні моделі та full_clean(). secret_key можна передати для WayForPay, але він не повертається у відповіді або журналі.
| 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 | ||
What it touches: checkout.payments, payment_configuration
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
payments.settings.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"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"
]
}
{
"type": "object"
}
customers.get — Дані клієнтаWhat it does: Повертає профіль користувача магазину й останні замовлення.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii, financial | ||
| Side effects | — | ||
What it touches: customers
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"customer_id"
]
}
{
"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 | — | ||
What it touches: customers
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"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
}
{
"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 | ||
What it touches: customers
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
customers.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"customer_id",
"patch"
]
}
{
"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 | ||
What it touches: customers
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
{
"type": "object",
"properties": {
"subscriber_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"subscriber_id"
]
}
{
"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 | — | ||
What it touches: customers
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"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
}
{
"type": "object"
}
reviews.delete — Видалити відгукWhat it does: Видаляє відгук; чинний signal автоматично перерахує рейтинг товару.
| Access | write | Risk | high |
|---|---|---|---|
| Confirmation | required | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | review_deleted, product_rating_recalculated | ||
What it touches: reviews, product_rating
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
{
"type": "object",
"properties": {
"review_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"review_id"
]
}
{
"type": "object"
}
reviews.list — Список відгуківWhat it does: Повертає відгуки з фільтром товару й оцінки; містить email автора.
| Access | read | Risk | medium |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | customer_pii | ||
| Side effects | — | ||
What it touches: reviews, product_rating
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"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
},
"rating": {
"type": "integer",
"minimum": 1,
"maximum": 5
}
},
"additionalProperties": false
}
{
"type": "object"
}
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 | — | ||
What it touches: warehouse, stock_movements
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"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"
]
}
{
"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 | — | ||
What it touches: warehouse, stock_movements
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"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
}
{
"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 | — | ||
What it touches: warehouse, stock_movements
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"type": "object",
"properties": {
"purchase_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"purchase_id"
]
}
{
"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 | — | ||
What it touches: warehouse, stock_movements
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"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
}
{
"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 | ||
What it touches: warehouse, stock_movements
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
warehouse.purchases.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"purchase_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"purchase_id"
]
}
{
"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 | ||
What it touches: warehouse, stock_movements
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
warehouse.revisions.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)warehouse.stock.list — Звір поточний точний залишок перед формуванням fact_qty. (before_revision_write){
"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"
]
}
{
"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 | — | ||
What it touches: warehouse, stock_movements
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"revision_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"revision_id"
]
}
{
"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 | — | ||
What it touches: warehouse, stock_movements
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
warehouse.stock.list — Звір поточний точний залишок перед формуванням fact_qty. (before_revision_write){
"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
}
{
"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 | ||
What it touches: warehouse, stock_movements
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
warehouse.revisions.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)warehouse.stock.list — Звір поточний точний залишок перед формуванням fact_qty. (before_revision_write){
"type": "object",
"properties": {
"revision_id": {
"type": "integer",
"minimum": 1
},
"author_user_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"revision_id",
"author_user_id"
]
}
{
"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 | ||
What it touches: warehouse, stock_movements
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
warehouse.revisions.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write)warehouse.stock.list — Звір поточний точний залишок перед формуванням fact_qty. (before_revision_write){
"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"
]
}
{
"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 | — | ||
What it touches: warehouse, stock_movements
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"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
}
{
"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 | — | ||
What it touches: warehouse, stock_movements
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"type": "object"
}
shipping.methods.list — Методи доставкиWhat it does: Повертає публічні увімкнені методи через чинний shipping.registry.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
What it touches: checkout.shipping, shipping_configuration
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"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 | — | ||
What it touches: checkout.shipping, shipping_configuration
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"additionalProperties": false,
"required": [
"query"
]
}
{
"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 | — | ||
What it touches: checkout.shipping, shipping_configuration
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"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
}
{
"type": "object"
}
shipping.settings.get — Налаштування доставкиWhat it does: Повертає конфіг усіх зареєстрованих shipping providers з перекладами.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
What it touches: checkout.shipping, shipping_configuration
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"type": "object"
}
shipping.settings.update — Оновити метод доставкиWhat it does: Частково змінює is_active, title, description, address і переклади у settings_model зареєстрованого provider.
| Access | write | Risk | medium |
|---|---|---|---|
| Confirmation | recommended | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | checkout_shipping_options_changed | ||
What it touches: checkout.shipping, shipping_configuration
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
shipping.settings.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"code": {
"type": "string"
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"translations": {
"type": "object"
}
},
"additionalProperties": false,
"required": [
"code",
"patch"
]
}
{
"type": "object"
}
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 | — | ||
What it touches: catalog.import_export, background_operations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"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 | — | ||
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
{
"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 | ||
What it touches: catalog.import_export, background_operations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
exchange.export_presets.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"columns": {
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": false,
"required": [
"data",
"columns"
]
}
{
"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 | ||
What it touches: catalog.import_export, background_operations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
exchange.export_presets.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"preset_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"preset_id"
]
}
{
"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 | — | ||
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"preset_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"preset_id"
]
}
{
"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 | — | ||
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"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
}
{
"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 | ||
What it touches: catalog.import_export, background_operations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
exchange.export_presets.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"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"
]
}
{
"type": "object"
}
exchange.gateways.create — Створити data gatewayWhat 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 | ||
What it touches: catalog.import_export, background_operations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
exchange.gateways.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"allowed_ips": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false,
"required": [
"data"
]
}
{
"type": "object"
}
exchange.gateways.delete — Видалити data gatewayWhat 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 | ||
What it touches: catalog.import_export, background_operations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
exchange.gateways.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"gateway_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"gateway_id"
]
}
{
"type": "object"
}
exchange.gateways.get — Дані data gatewayWhat it does: Повертає один публічний data gateway.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"gateway_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"gateway_id"
]
}
{
"type": "object"
}
exchange.gateways.list — Публічні data gatewaysWhat it does: Повертає публічні URL експорту, джерела пресетів і IP allowlist.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | import_export | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"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
}
{
"type": "object"
}
exchange.gateways.update — Оновити data gatewayWhat 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 | ||
What it touches: catalog.import_export, background_operations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
exchange.gateways.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"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"
]
}
{
"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 | ||
What it touches: catalog.import_export, background_operations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
exchange.import_presets.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
},
"columns": {
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": false,
"required": [
"data",
"columns"
]
}
{
"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 | ||
What it touches: catalog.import_export, background_operations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
exchange.import_presets.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"preset_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"preset_id"
]
}
{
"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 | — | ||
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"preset_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"preset_id"
]
}
{
"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 | — | ||
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"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
}
{
"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 | ||
What it touches: catalog.import_export, background_operations
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
exchange.import_presets.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"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"
]
}
{
"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 | ||
What it touches: catalog.import_export, background_operations
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
{
"type": "object",
"properties": {
"operation_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"operation_id"
]
}
{
"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 | — | ||
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"type": "object",
"properties": {
"operation_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"operation_id"
]
}
{
"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 | — | ||
What it touches: catalog.import_export, background_operations
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"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
}
{
"type": "object"
}
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 | ||
What it touches: notifications, delivery_logs
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
notifications.channels.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"data": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"kind",
"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 | ||
What it touches: notifications, delivery_logs
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
notifications.channels.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"channel_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"kind",
"channel_id"
]
}
{
"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 | — | ||
What it touches: notifications, delivery_logs
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"channel_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"kind",
"channel_id"
]
}
{
"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 | — | ||
What it touches: notifications, delivery_logs
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"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
}
{
"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 | ||
What it touches: notifications, delivery_logs
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
notifications.channels.get — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"channel_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"kind",
"channel_id",
"patch"
]
}
{
"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 | — | ||
What it touches: notifications, delivery_logs
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
{
"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
}
{
"type": "object"
}
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 | ||
What it touches: storefront.routing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
redirects.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"base_path": {
"type": "string"
},
"target_url": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"base_path",
"target_url"
]
}
{
"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 | ||
What it touches: storefront.routing
Decision rule: Отримай явне підтвердження конкретної дії безпосередньо перед викликом.
redirects.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"redirect_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"redirect_id"
]
}
{
"type": "object"
}
redirects.list — Список редиректівWhat it does: Повертає правила редиректів магазину.
| Access | read | Risk | low |
|---|---|---|---|
| Confirmation | none | Idempotency | not_needed |
| Required modules | — | ||
| Data classes | shop_internal | ||
| Side effects | — | ||
What it touches: storefront.routing
Decision rule: Можна викликати без підтвердження, але запитуй лише потрібні дані й не роби зайвих змін.
{
"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
}
{
"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 | ||
What it touches: storefront.routing
Decision rule: Спочатку виконай preflight, покажи користувачу наслідок і віддай перевагу вузькому методу.
redirects.list — Прочитай поточний стан і не перезаписуй поля, яких користувач не просив змінювати. (before_write){
"type": "object",
"properties": {
"redirect_id": {
"type": "integer",
"minimum": 1
},
"patch": {
"type": "object",
"description": "Частковий набір дозволених полів."
}
},
"additionalProperties": false,
"required": [
"redirect_id",
"patch"
]
}
{
"type": "object"
}