H-2626: Правки после ревью

This commit is contained in:
2026-08-20 13:06:30 +05:00
parent 6c8980162c
commit 278463e611
+44 -4
View File
@@ -8535,6 +8535,7 @@ paths:
description: | description: |
`shop_product_id` обязателен — его требует `ShopProductOptionSearch`. `shop_product_id` обязателен — его требует `ShopProductOptionSearch`.
Дефолтная сортировка `sort_index ASC` через `defaultOrder` search-модели. Дефолтная сортировка `sort_index ASC` через `defaultOrder` search-модели.
По умолчанию отдаются только активные (status_id=ACTIVE); чтобы увидеть удалённые — явно передать `status_id`.
operationId: adminShopProductOptionIndex operationId: adminShopProductOptionIndex
parameters: parameters:
- name: shop_product_id - name: shop_product_id
@@ -8544,8 +8545,9 @@ paths:
- name: status_id - name: status_id
in: query in: query
schema: { type: integer } schema: { type: integer }
- name: title - name: name
in: query in: query
description: LIKE-фильтр по названию варианта.
schema: { type: string } schema: { type: string }
- name: sort - name: sort
in: query in: query
@@ -8608,6 +8610,8 @@ paths:
post: post:
tags: [admin-shop-product-option] tags: [admin-shop-product-option]
summary: Обновить одну опцию summary: Обновить одну опцию
description: |
Поле `shop_product_id` игнорируется — привязку к товару менять нельзя.
operationId: adminShopProductOptionUpdate operationId: adminShopProductOptionUpdate
parameters: parameters:
- name: id - name: id
@@ -8677,7 +8681,23 @@ paths:
description: Диапазон `<начало>|<конец>` в формате `yyyy-MM-dd`. description: Диапазон `<начало>|<конец>` в формате `yyyy-MM-dd`.
- name: sort - name: sort
in: query in: query
schema: { type: string } description: |
Поддерживаемые поля: `created_at`, `num`, `order_status_id`,
`sum_cart_for_sorting`, `count_cart_for_sorting`.
Префикс `-` — сортировка по убыванию. Дефолт — `-created_at`.
schema:
type: string
enum:
- created_at
- "-created_at"
- num
- "-num"
- order_status_id
- "-order_status_id"
- sum_cart_for_sorting
- "-sum_cart_for_sorting"
- count_cart_for_sorting
- "-count_cart_for_sorting"
responses: responses:
200: 200:
description: Список заказов description: Список заказов
@@ -8763,6 +8783,8 @@ paths:
post: post:
tags: [admin-shop-order] tags: [admin-shop-order]
summary: Удалить позицию заказа summary: Удалить позицию заказа
description: |
Операция допустима только на заказе в статусе NEW; для обработанного/отменённого — 422.
operationId: adminShopOrderPositionRemove operationId: adminShopOrderPositionRemove
requestBody: requestBody:
required: true required: true
@@ -8781,11 +8803,15 @@ paths:
application/json: application/json:
schema: schema:
$ref: '#/components/schemas/HttpJsonResult' $ref: '#/components/schemas/HttpJsonResult'
404: { description: Позиция не найдена. }
422: { description: Ошибка валидации формы либо заказ уже не в статусе NEW. }
/admin/shop/order/position-restore: /admin/shop/order/position-restore:
post: post:
tags: [admin-shop-order] tags: [admin-shop-order]
summary: Восстановить удалённую позицию заказа summary: Восстановить удалённую позицию заказа
description: |
Операция допустима только на заказе в статусе NEW; для обработанного/отменённого — 422.
operationId: adminShopOrderPositionRestore operationId: adminShopOrderPositionRestore
requestBody: requestBody:
required: true required: true
@@ -8803,11 +8829,16 @@ paths:
application/json: application/json:
schema: schema:
$ref: '#/components/schemas/HttpJsonResult' $ref: '#/components/schemas/HttpJsonResult'
400: { description: Параметр `id` не передан или имеет некорректный формат. }
404: { description: Позиция не найдена. }
422: { description: Заказ уже не в статусе NEW. }
/admin/shop/order/position-change-comment: /admin/shop/order/position-change-comment:
post: post:
tags: [admin-shop-order] tags: [admin-shop-order]
summary: Изменить комментарий к позиции заказа summary: Изменить комментарий к позиции заказа
description: |
Операция допустима только на заказе в статусе NEW; для обработанного/отменённого — 422.
operationId: adminShopOrderPositionChangeComment operationId: adminShopOrderPositionChangeComment
requestBody: requestBody:
required: true required: true
@@ -8826,6 +8857,8 @@ paths:
application/json: application/json:
schema: schema:
$ref: '#/components/schemas/HttpJsonResult' $ref: '#/components/schemas/HttpJsonResult'
404: { description: Позиция не найдена. }
422: { description: Ошибка валидации формы либо заказ уже не в статусе NEW. }
/admin/shop/order/export-excel: /admin/shop/order/export-excel:
post: post:
@@ -14808,6 +14841,12 @@ components:
oneOf: oneOf:
- { type: object, additionalProperties: true } - { type: object, additionalProperties: true }
- { type: string, description: JSON-encoded блоки (legacy). } - { type: string, description: JSON-encoded блоки (legacy). }
categoriesId:
type: string
description: |
Список UUID категорий через запятую (например `uuid1,uuid2`).
Обрабатывается `CategoryTreeItemModelBehavior::afterSave`. Пустая строка
снимает все привязки. Без категории товар не будет виден в витрине покупателя.
AdminShopProductOption: AdminShopProductOption:
type: object type: object
@@ -14843,8 +14882,9 @@ components:
type: object type: object
description: | description: |
Поля `id`, `created_user_id`, `updated_user_id`, `tenant_id` подставляются Поля `id`, `created_user_id`, `updated_user_id`, `tenant_id` подставляются
автоматически в `BaseModel::beforeSave` — попытка передать их в payload автоматически behavior'ами модели — попытка передать их в payload
игнорируется (поля убраны из `safeAttributes`). перезаписывается серверными значениями.
При `update` поле `shop_product_id` игнорируется — привязку к товару менять нельзя.
properties: properties:
shop_product_id: { type: string, format: uuid } shop_product_id: { type: string, format: uuid }
status_id: { type: integer } status_id: { type: integer }